From: Jean-Marc Lasgouttes Date: Fri, 4 Nov 2016 11:01:43 +0000 (+0100) Subject: Fix height of cursor inside insets X-Git-Tag: 2.3.0alpha1~768 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=b099d9ae15c45a9c30727078d69c0c7bd8029c9a;p=features.git Fix height of cursor inside insets It turns out that Cursor::getFont() does not return a fully realized font in some cases. This patch uses real_current_font instead, which seems better anyway. I suspect that all uses of getFont() should be removed, but this is not code that I know well. Fixes bug #10478. --- diff --git a/src/BufferView.cpp b/src/BufferView.cpp index a9ce9a1092..463d0f24b8 100644 --- a/src/BufferView.cpp +++ b/src/BufferView.cpp @@ -2891,7 +2891,7 @@ bool BufferView::paragraphVisible(DocIterator const & dit) const void BufferView::cursorPosAndHeight(Point & p, int & h) const { Cursor const & cur = cursor(); - Font const font = cur.getFont(); + Font const font = cur.real_current_font; frontend::FontMetrics const & fm = theFontMetrics(font); int const asc = fm.maxAscent(); int const des = fm.maxDescent(); diff --git a/src/Cursor.cpp b/src/Cursor.cpp index 6f393e3799..43984de9c8 100644 --- a/src/Cursor.cpp +++ b/src/Cursor.cpp @@ -2121,6 +2121,7 @@ Font Cursor::getFont() const // The logic here should more or less match to the // Cursor::setCurrentFont logic, i.e. the cursor height should // give a hint what will happen if a character is entered. + // FIXME: this is not the case, what about removing this method ? (see #10478). // HACK. far from being perfect... diff --git a/src/frontends/qt4/GuiWorkArea.cpp b/src/frontends/qt4/GuiWorkArea.cpp index 6b2a10b1a8..aa5e285da7 100644 --- a/src/frontends/qt4/GuiWorkArea.cpp +++ b/src/frontends/qt4/GuiWorkArea.cpp @@ -1264,6 +1264,7 @@ void GuiWorkArea::inputMethodEvent(QInputMethodEvent * e) GuiPainter pain(d->screen_, pixelRatio()); d->buffer_view_->updateMetrics(); d->buffer_view_->draw(pain); + // FIXME: shall we use real_current_font here? (see #10478) FontInfo font = d->buffer_view_->cursor().getFont().fontInfo(); FontMetrics const & fm = theFontMetrics(font); int height = fm.maxHeight();