Просмотр исходного кода

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.
Andreas Kling 6 лет назад
Родитель
Сommit
84f96c393c
1 измененных файлов с 1 добавлено и 1 удалено
  1. 1 1
      Servers/WindowServer/WSClientConnection.cpp

+ 1 - 1
Servers/WindowServer/WSClientConnection.cpp

@@ -503,7 +503,7 @@ void WSClientConnection::handle_request(const WSAPIInvalidateRectRequest& reques
     }
     }
     auto& window = *(*it).value;
     auto& window = *(*it).value;
     for (int i = 0; i < request.rects().size(); ++i)
     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)
 void WSClientConnection::handle_request(const WSAPIDidFinishPaintingNotification& request)