1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 20:07:35 +00:00

WindowServer: Allow partial repaints in window frame & menubars

Before this change, invalidating any rect in a WindowFrame would cause
the entire window (including frame & drop shadow) to get invalidated,
leading to copious amounts of overdraw when mousing over menubars,
titlebars, and window buttons.

We now simply allow the partial frame invalidations through to the
window's dirty rects collection and the compositor takes care of it.
This commit is contained in:
Andreas Kling 2021-07-08 00:44:19 +02:00
parent cad62230f6
commit 432ab47053
3 changed files with 4 additions and 4 deletions

View file

@ -643,14 +643,14 @@ void Window::invalidate(bool invalidate_frame, bool re_render_frame)
Compositor::the().invalidate_window();
}
void Window::invalidate(const Gfx::IntRect& rect, bool with_frame)
void Window::invalidate(Gfx::IntRect const& rect)
{
if (type() == WindowType::Applet) {
AppletManager::the().invalidate_applet(*this, rect);
return;
}
if (invalidate_no_notify(rect, with_frame))
if (invalidate_no_notify(rect))
Compositor::the().invalidate_window();
}