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

List:       kde-commits
Subject:    [kate/KDE/4.9] part/render: make font "Courier New" work
From:       Dominik Haumann <dhdev () gmx ! de>
Date:       2012-07-03 12:05:30
Message-ID: 20120703120530.BD8BAA60A6 () git ! kde ! org
[Download RAW message or body]

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

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/eea6116bc02c67d3604e6ca246689ebba82bed76

diff --git a/part/render/katerenderer.cpp b/part/render/katerenderer.cpp
index 06582aa..606a07d 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()
@@ -762,7 +765,7 @@ const QFontMetrics& KateRenderer::currentFontMetrics() const
 
 uint KateRenderer::fontHeight()
 {
-  return config()->fontMetrics().height();
+  return m_fontHeight;
 }
 
 uint KateRenderer::documentHeight()
@@ -829,6 +832,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 64a39f6..4a2af8a 100644
--- a/part/render/katerenderer.h
+++ b/part/render/katerenderer.h
@@ -322,6 +322,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