From kde-commits Tue Jul 03 12:05:30 2012 From: Dominik Haumann Date: Tue, 03 Jul 2012 12:05:30 +0000 To: kde-commits Subject: [kate/KDE/4.9] part/render: make font "Courier New" work Message-Id: <20120703120530.BD8BAA60A6 () git ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=134131736311602 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 *v= iew) , m_config(new KateRendererConfig(this)) { updateAttributes (); + + // initialize with a sane font height + m_fontHeight =3D 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 =3D config()->font(); + italicFont.setItalic(true); + const int italicFontHeight =3D QFontMetrics(italicFont).height(); + const int fontHeight =3D config()->fontMetrics().height(); + m_fontHeight =3D 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;