From 812ee194b72804cbc20848fd562d6c9b4f172bf7 Mon Sep 17 00:00:00 2001 From: Tom Date: Sun, 4 Jul 2021 11:06:39 -0600 Subject: [PATCH] WindowServer: Toggling desktop should only toggle current desktop We should only show/hide the windows on the current virtual desktop. --- .../WindowServer/WMClientConnection.cpp | 33 +++++++++---------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/Userland/Services/WindowServer/WMClientConnection.cpp b/Userland/Services/WindowServer/WMClientConnection.cpp index b7a4ec57e3..b34798e360 100644 --- a/Userland/Services/WindowServer/WMClientConnection.cpp +++ b/Userland/Services/WindowServer/WMClientConnection.cpp @@ -118,28 +118,25 @@ void WMClientConnection::set_window_minimized(i32 client_id, i32 window_id, bool void WMClientConnection::toggle_show_desktop() { bool should_hide = false; - WindowServer::ClientConnection::for_each_client([&should_hide](auto& client) { - client.for_each_window([&should_hide](Window& window) { - if (window.type() == WindowType::Normal && window.is_minimizable()) { - if (!window.is_hidden() && !window.is_minimized()) { - should_hide = true; - return IterationDecision::Break; - } + auto& current_window_stack = WindowManager::the().current_window_stack(); + current_window_stack.for_each_window([&](auto& window) { + if (window.type() == WindowType::Normal && window.is_minimizable()) { + if (!window.is_hidden() && !window.is_minimized()) { + should_hide = true; + return IterationDecision::Break; } - return IterationDecision::Continue; - }); + } + return IterationDecision::Continue; }); - WindowServer::ClientConnection::for_each_client([should_hide](auto& client) { - client.for_each_window([should_hide](Window& window) { - if (window.type() == WindowType::Normal && window.is_minimizable()) { - auto state = window.minimized_state(); - if (state == WindowMinimizedState::None || state == WindowMinimizedState::Hidden) { - WindowManager::the().hide_windows(window, should_hide); - } + current_window_stack.for_each_window([&](auto& window) { + if (window.type() == WindowType::Normal && window.is_minimizable()) { + auto state = window.minimized_state(); + if (state == WindowMinimizedState::None || state == WindowMinimizedState::Hidden) { + WindowManager::the().hide_windows(window, should_hide); } - return IterationDecision::Continue; - }); + } + return IterationDecision::Continue; }); }