diff options
author | Andreas Kling <awesomekling@gmail.com> | 2019-12-27 11:34:40 +0100 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2019-12-27 11:34:40 +0100 |
commit | c7847d7c81af5adc1a0b9a25e6c381caa06e5810 (patch) | |
tree | f857e22335ed7e1ac3d76dbb544b7cb74fb84b83 /Servers/WindowServer/WSWindowSwitcher.cpp | |
parent | 5d1acdda829422b347be502d2e68fd52266d4ef4 (diff) | |
download | serenity-c7847d7c81af5adc1a0b9a25e6c381caa06e5810.zip |
WindowServer+LibGUI: Mark window bitmaps volatile in occluded windows
WindowServer now tracks whether windows are occluded (meaning that
they are completely covered by one or more opaque windows sitting above
them.) This state is communicated to the windows via WindowStateChanged
messages, which then allow GWindow to mark its backing store volatile.
This reduces the effective memory impact of windows that are not at all
visible to the user. Very cool. :^)
Diffstat (limited to 'Servers/WindowServer/WSWindowSwitcher.cpp')
-rw-r--r-- | Servers/WindowServer/WSWindowSwitcher.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/Servers/WindowServer/WSWindowSwitcher.cpp b/Servers/WindowServer/WSWindowSwitcher.cpp index f98499a43d..2c6622a90d 100644 --- a/Servers/WindowServer/WSWindowSwitcher.cpp +++ b/Servers/WindowServer/WSWindowSwitcher.cpp @@ -28,6 +28,7 @@ void WSWindowSwitcher::set_visible(bool visible) if (m_visible == visible) return; m_visible = visible; + WSWindowManager::the().recompute_occlusions(); if (m_switcher_window) m_switcher_window->set_visible(visible); if (!m_visible) |