mirror of
https://github.com/SerenityOS/serenity
synced 2024-10-16 21:04:20 +00:00
WindowServer: Ignore overlap when compositing full-screen windows
Normally we walk the window stack to see if a given dirty rect is covered by an opaque window. When the active window is full-screened, we can skip this check and just unconditionally paint the window. This fixes an issue where windows with higher inherent z-order (like the taskbar and menu windows) would get cursor ghosting in them while a normal window was full-screened. Fixes #2289.
This commit is contained in:
parent
6d078a9ec3
commit
c1827d9766
|
@ -172,7 +172,7 @@ void Compositor::compose()
|
|||
m_back_painter->add_clip_rect(window.frame().rect());
|
||||
RefPtr<Gfx::Bitmap> backing_store = window.backing_store();
|
||||
for (auto& dirty_rect : dirty_rects.rects()) {
|
||||
if (wm.any_opaque_window_above_this_one_contains_rect(window, dirty_rect))
|
||||
if (!window.is_fullscreen() && wm.any_opaque_window_above_this_one_contains_rect(window, dirty_rect))
|
||||
continue;
|
||||
Gfx::PainterStateSaver saver(*m_back_painter);
|
||||
m_back_painter->add_clip_rect(dirty_rect);
|
||||
|
|
Loading…
Reference in a new issue