summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibGUI/Window.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Libraries/LibGUI/Window.cpp')
-rw-r--r--Userland/Libraries/LibGUI/Window.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/Userland/Libraries/LibGUI/Window.cpp b/Userland/Libraries/LibGUI/Window.cpp
index fe37f5ef0d..e0c7068d30 100644
--- a/Userland/Libraries/LibGUI/Window.cpp
+++ b/Userland/Libraries/LibGUI/Window.cpp
@@ -410,8 +410,9 @@ void Window::handle_multi_paint_event(MultiPaintEvent& event)
m_back_store = create_backing_store(event.window_size());
VERIFY(m_back_store);
} else if (m_double_buffering_enabled) {
- bool still_has_pixels = m_back_store->bitmap().set_nonvolatile();
- if (!still_has_pixels) {
+ bool was_purged = false;
+ bool bitmap_has_memory = m_back_store->bitmap().set_nonvolatile(was_purged);
+ if (!bitmap_has_memory || was_purged) {
m_back_store = create_backing_store(event.window_size());
VERIFY(m_back_store);
created_new_backing_store = true;
@@ -1015,7 +1016,9 @@ void Window::notify_state_changed(Badge<WindowServerConnection>, bool minimized,
if (minimized || occluded) {
store->bitmap().set_volatile();
} else {
- if (!store->bitmap().set_nonvolatile()) {
+ bool was_purged = false;
+ bool bitmap_has_memory = store->bitmap().set_nonvolatile(was_purged);
+ if (!bitmap_has_memory || was_purged) {
store = nullptr;
update();
}