summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Groh <mail@linusgroh.de>2021-02-10 18:11:28 +0100
committerAndreas Kling <kling@serenityos.org>2021-02-11 13:12:17 +0100
commit0304ab3e678151c2f73fd91050a99e8875410ac0 (patch)
tree029ef17f809dcda05c3deeabf5e25f94bcd7052a
parente1333724ea7d8f2dd8669ddae6554b925e170281 (diff)
downloadserenity-0304ab3e678151c2f73fd91050a99e8875410ac0.zip
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.
-rw-r--r--Userland/Services/WindowServer/Compositor.cpp1
1 files changed, 1 insertions, 0 deletions
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);