From 0304ab3e678151c2f73fd91050a99e8875410ac0 Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Wed, 10 Feb 2021 18:11:28 +0100 Subject: [PATCH] WindowServer: Fix compositing of fullscreen window I honestly don't know the internals of all this and what exactly is going on, but this fixes compositing of the fullscreen window. By trial and error I found that specifically m_invalidated_all needs to be set to false, so it's probably different behaviour in prepare_dirty_rects(), which depends on that... Either way, the code composing all windows in non-fullscreen mode calls Window::clear_dirty_rects() for each, so not doing that for the fullscreen window as well seems like an oversight. Fixes #4810. --- Userland/Services/WindowServer/Compositor.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Userland/Services/WindowServer/Compositor.cpp b/Userland/Services/WindowServer/Compositor.cpp index 84bb651e5b..143b53793b 100644 --- a/Userland/Services/WindowServer/Compositor.cpp +++ b/Userland/Services/WindowServer/Compositor.cpp @@ -422,6 +422,7 @@ void Compositor::compose() if (m_invalidated_window) { if (auto* fullscreen_window = wm.active_fullscreen_window()) { compose_window(*fullscreen_window); + fullscreen_window->clear_dirty_rects(); } else { wm.for_each_visible_window_from_back_to_front([&](Window& window) { compose_window(window);