[LyX/master] Always repaint the gray area below main inset

Jean-Marc Lasgouttes lasgouttes at lyx.org
Wed Apr 17 21:22:30 UTC 2024


commit 1a11abe4394272f521cd63993e426c136e0e9b6c
Author: Jean-Marc Lasgouttes <lasgouttes at lyx.org>
Date:   Tue Apr 16 23:55:24 2024 +0200

    Always repaint the gray area below main inset
    
    Now that SingleParUpdate does not always lead to a full screen update
    when the height of the paragraph changes (see new behavior of
    updateMatrics(bool)), it is necessary to make sure that the grey area
    below the main page is always repainted.
---
 src/BufferView.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/BufferView.cpp b/src/BufferView.cpp
index 7abaea0d40..006211c15a 100644
--- a/src/BufferView.cpp
+++ b/src/BufferView.cpp
@@ -3711,7 +3711,11 @@ void BufferView::draw(frontend::Painter & pain, bool paint_caret)
 		// Draw everything.
 		tm.draw(pi, 0, y);
 
-		// and possibly grey out below
+		break;
+	}
+
+	// Possibly grey out below
+	if (d->update_strategy_ != NoScreenUpdate) {
 		pair<pit_type, ParagraphMetrics const *> lastpm = tm.last();
 		int const y2 = lastpm.second->bottom();
 
@@ -3720,8 +3724,8 @@ void BufferView::draw(frontend::Painter & pain, bool paint_caret)
 				? Color_background : Color_bottomarea;
 			pain.fillRectangle(0, y2, width_, height_ - y2, color);
 		}
-		break;
 	}
+
 	LYXERR(Debug::PAINTING, (pain.isNull() ? "\t\t --- END NODRAW ---"
 	                        : "\t\t *** END DRAWING ***"));
 


More information about the lyx-cvs mailing list