]> git.lyx.org Git - features.git/commitdiff
Fixup 'Avoid metrics computation on resize when width did not change'
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Wed, 10 Apr 2024 10:31:12 +0000 (12:31 +0200)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Wed, 10 Apr 2024 13:32:50 +0000 (15:32 +0200)
When the width of the window did not change, computing full metrics is
not necessary in BufferView::resize(), but it is better to redraw the
screen (especially with Wayland).

Typical use cases are when using M-x to open the minibuffer or going
in and out of an equation (which shows/hides the math toolbars).

(cherry picked from commit 83e7c74f6b4ce06936f11a5239a6c88f019a43ff)

src/BufferView.cpp

index c03f928c4d18ede0a0ee21f28d9e964d40ced0e9..1056459ea204dfe7760d3bc9e4e21fe0c74410df 100644 (file)
@@ -2492,8 +2492,11 @@ void BufferView::resize(int width, int height)
                // Clear the paragraph height cache.
                d->par_height_.clear();
                // Redo the metrics.
-               updateMetrics();
+               updateMetrics(true);
        }
+       // metrics is OK, full drawing is necessary now
+       d->update_flags_ = (d->update_flags_ & ~Update::Force) | Update::ForceDraw;
+       d->update_strategy_ = FullScreenUpdate;
 }