From 6ea7e67b62222c0a2f48f12e4cef6719f7e02333 Mon Sep 17 00:00:00 2001 From: Tom Date: Wed, 26 Aug 2020 13:31:34 -0600 Subject: [PATCH] WindowServer: Fix minor flicker with transparent windows Do not fill the backing store mismatch area with the solid window color if the window is transparent. This caused some minor flicker when such a window is e.g. snapped to the left/right or maximized. --- Services/WindowServer/Compositor.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Services/WindowServer/Compositor.cpp b/Services/WindowServer/Compositor.cpp index 1d4b095d58..be516c4fad 100644 --- a/Services/WindowServer/Compositor.cpp +++ b/Services/WindowServer/Compositor.cpp @@ -354,8 +354,10 @@ void Compositor::compose() painter.blit(dst, *backing_store, dirty_rect_in_backing_coordinates, window.opacity()); } - for (auto background_rect : window.rect().shatter(backing_rect)) - painter.fill_rect(background_rect, wm.palette().window()); + if (window.is_opaque()) { + for (auto background_rect : window.rect().shatter(backing_rect)) + painter.fill_rect(background_rect, wm.palette().window()); + } }; auto& dirty_rects = window.dirty_rects();