From 84f96c393c6d39908474202f10ea42cc569e0545 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 21 Apr 2019 04:20:29 +0200 Subject: [PATCH] WindowServer: Limit paint request rects to the visible window rect. Don't send unnecessarily large paint requests to clients. This avoids some unnecessary work and fixes choppiness when dragging widgets outside the visible part of a VisualBuilder form. --- Servers/WindowServer/WSClientConnection.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Servers/WindowServer/WSClientConnection.cpp b/Servers/WindowServer/WSClientConnection.cpp index f8f2fb13f7..37ced67017 100644 --- a/Servers/WindowServer/WSClientConnection.cpp +++ b/Servers/WindowServer/WSClientConnection.cpp @@ -503,7 +503,7 @@ void WSClientConnection::handle_request(const WSAPIInvalidateRectRequest& reques } auto& window = *(*it).value; for (int i = 0; i < request.rects().size(); ++i) - window.request_update(request.rects()[i]); + window.request_update(request.rects()[i].intersected({ { }, window.size() })); } void WSClientConnection::handle_request(const WSAPIDidFinishPaintingNotification& request)