]> git.lyx.org Git - lyx.git/commitdiff
Fix caret height when inserting new inset
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Sun, 14 Feb 2021 20:34:43 +0000 (21:34 +0100)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Sun, 14 Feb 2021 20:39:15 +0000 (21:39 +0100)
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.

src/Text3.cpp

index 07df90ee16b4f6dfdcf7ddb461cf16c6dfeb8f46..9b66997397a1d088607a9563e9de196f568bdb75 100644 (file)
@@ -2082,15 +2082,12 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                // inside it.
                doInsertInset(cur, this, cmd, true, true);
                cur.posForward();
-               if (act == LFUN_SCRIPT_INSERT) {
-                       /* Script insets change the font style in metrics(), and
-                        * this is used to compute the height of the caret
-                        * (because the font is stored in TextMetrics::font_).
-                        * When we insert, we have to make sure that metrics are
-                        * computed so that the caret height is wrong. Arguably,
-                        * this is hackish.*/
-                       bv->processUpdateFlags(Update::SinglePar);
-               }
+               /* The font of the inset is computed in metrics(), and this is
+                * used to compute the height of the caret (because the font
+                * is stored in TextMetrics::font_). When we insert, we have
+                * to make sure that metrics are computed so that the caret
+                * height is correct. Arguably, this is hackish.*/
+               bv->processUpdateFlags(Update::SinglePar);
                cur.setCurrentFont();
                // Some insets are numbered, others are shown in the outline pane so
                // let's update the labels and the toc backend.