mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-26 11:16:55 +00:00
Fix caret height when inserting new inset
For now, the simplest thing to do it to compute metrics in all cases before calling setCurrentFont(). In 2.5, a better approach will be to add a new virtual function InsetText::setFont that will set correctly TextMetrics::font_ (a cache of the reference font). Fixes bug #12126.
This commit is contained in:
parent
6f16319879
commit
5a58ca6576
@ -2082,15 +2082,12 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
|
|||||||
// inside it.
|
// inside it.
|
||||||
doInsertInset(cur, this, cmd, true, true);
|
doInsertInset(cur, this, cmd, true, true);
|
||||||
cur.posForward();
|
cur.posForward();
|
||||||
if (act == LFUN_SCRIPT_INSERT) {
|
/* The font of the inset is computed in metrics(), and this is
|
||||||
/* Script insets change the font style in metrics(), and
|
* used to compute the height of the caret (because the font
|
||||||
* this is used to compute the height of the caret
|
* is stored in TextMetrics::font_). When we insert, we have
|
||||||
* (because the font is stored in TextMetrics::font_).
|
* to make sure that metrics are computed so that the caret
|
||||||
* When we insert, we have to make sure that metrics are
|
* height is correct. Arguably, this is hackish.*/
|
||||||
* computed so that the caret height is wrong. Arguably,
|
bv->processUpdateFlags(Update::SinglePar);
|
||||||
* this is hackish.*/
|
|
||||||
bv->processUpdateFlags(Update::SinglePar);
|
|
||||||
}
|
|
||||||
cur.setCurrentFont();
|
cur.setCurrentFont();
|
||||||
// Some insets are numbered, others are shown in the outline pane so
|
// Some insets are numbered, others are shown in the outline pane so
|
||||||
// let's update the labels and the toc backend.
|
// let's update the labels and the toc backend.
|
||||||
|
Loading…
Reference in New Issue
Block a user