From 5c60a6a8fbb21cd8de4a68778814c442b2835ca5 Mon Sep 17 00:00:00 2001 From: Tom Date: Thu, 20 Aug 2020 17:20:30 -0600 Subject: WindowServer: Fix MenuApplets painting We need to clip painting to the actual size to prevent corrupting the area outside of the applet as the backing store is not guaranteed to be perfectly in sync. Fixes #3107 --- Services/WindowServer/AppletManager.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Services/WindowServer/AppletManager.cpp b/Services/WindowServer/AppletManager.cpp index 6da3a3716a..18b50cda30 100644 --- a/Services/WindowServer/AppletManager.cpp +++ b/Services/WindowServer/AppletManager.cpp @@ -126,6 +126,8 @@ void AppletManager::draw_applet(const Window& applet) return; Gfx::Painter painter(*MenuManager::the().window().backing_store()); + Gfx::PainterStateSaver saver(painter); + painter.add_clip_rect(applet.rect_in_menubar()); painter.fill_rect(applet.rect_in_menubar(), WindowManager::the().palette().window()); painter.blit(applet.rect_in_menubar().location(), *applet.backing_store(), applet.backing_store()->rect()); } -- cgit v1.2.3