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.
(cherry picked from commit b099d9ae15)
This commit is contained in:
Jean-Marc Lasgouttes 2016-11-04 12:01:43 +01:00
parent ea3cdb1552
commit a0b8ea2eee
4 changed files with 7 additions and 2 deletions

View File

@ -2878,7 +2878,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

@ -2201,6 +2201,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

@ -1274,6 +1274,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();

View File

@ -123,7 +123,10 @@ What's new
- Allow using colors supported by xcolor inside mathed (bug 10417).
- Change description of "frame of button" color to "button frame" (bug 10135).
- Change description of "frame of button" color to "button frame" (bug
10135).
- Fix height of cursor inside insets (bug 10478).
* INTERNALS