1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 17:07:34 +00:00

LibGUI: Only redraw the dirty rect in GWidget.

There is some trouble here with the asynchronous nature of WindowServer
and the single per-window backing store we're drawing into. If we start
repainting a widget with a pending invalidation, that invalidation might
get flushed by the WindowServer mid-paint.
This commit is contained in:
Andreas Kling 2019-01-20 07:56:48 +01:00
parent ea6678b7b3
commit a9e60fc800
4 changed files with 10 additions and 8 deletions

View file

@ -31,7 +31,7 @@ Painter::Painter(GWidget& widget)
#ifdef DEBUG_WIDGET_UNDERDRAW
// If the widget is not opaque, let's not mess it up with debugging color.
if (widget.fillWithBackgroundColor())
if (widget.fillWithBackgroundColor() && m_window->main_widget() != &widget)
fill_rect(widget.rect(), Color::Red);
#endif
}