[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kate] part/render: make font "Courier New" work
From:       Dominik Haumann <dhdev () gmx ! de>
Date:       2012-07-03 12:02:54
Message-ID: 20120703120254.3287BA60A6 () git ! kde ! org
[Download RAW message or body]

Git commit d32f5c341c3d9ca70a84c7f30e54cdf05db87733 by Dominik Haumann.
Committed on 03/07/2012 at 13:58.
Pushed by dhaumann into branch 'master'.

make font "Courier New" work

FIXED-IN: 4.9
CCMAIL: ps_ml@gmx.de
BUG: 302748

M  +13   -1    part/render/katerenderer.cpp
M  +1    -0    part/render/katerenderer.h

http://commits.kde.org/kate/d32f5c341c3d9ca70a84c7f30e54cdf05db87733

diff --git a/part/render/katerenderer.cpp b/part/render/katerenderer.cpp
index 77b2b16..ad3c61d 100644
--- a/part/render/katerenderer.cpp
+++ b/part/render/katerenderer.cpp
@@ -59,6 +59,9 @@ KateRenderer::KateRenderer(KateDocument* doc, KateView *view)
     , m_config(new KateRendererConfig(this))
 {
   updateAttributes ();
+
+  // initialize with a sane font height
+  m_fontHeight = m_config->fontMetrics().height();
 }
 
 KateRenderer::~KateRenderer()
@@ -778,7 +781,7 @@ const QFontMetrics& KateRenderer::currentFontMetrics() const
 
 uint KateRenderer::fontHeight() const
 {
-  return config()->fontMetrics().height();
+  return m_fontHeight;
 }
 
 uint KateRenderer::documentHeight() const
@@ -845,6 +848,15 @@ void KateRenderer::updateConfig ()
 
   if (m_view)
     m_view->updateRendererConfig();
+
+  // Sometimes the height of italic fonts is larger than for the non-italic
+  // font. Since all our lines are of same/fixed height, use the maximum of
+  // both heights (bug #302748)
+  QFont italicFont = config()->font();
+  italicFont.setItalic(true);
+  const int italicFontHeight = QFontMetrics(italicFont).height();
+  const int fontHeight = config()->fontMetrics().height();
+  m_fontHeight = qMax(fontHeight, italicFontHeight);
 }
 
 uint KateRenderer::spaceWidth() const
diff --git a/part/render/katerenderer.h b/part/render/katerenderer.h
index 6f36aae..b91a468 100644
--- a/part/render/katerenderer.h
+++ b/part/render/katerenderer.h
@@ -337,6 +337,7 @@ public:
     // cache of config values
     int m_tabWidth;
     int m_indentWidth;
+    int m_fontHeight;
 
     // some internal flags
     KateRenderer::caretStyles m_caretStyle;
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic