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.
This commit is contained in:
Jean-Marc Lasgouttes 2016-11-04 12:01:43 +01:00
parent d207e85cfd
commit b099d9ae15
3 changed files with 3 additions and 1 deletions

View File

@ -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();

View File

@ -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...

View File

@ -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();