From f908ee34963a841f105f886e3769d6b337faa4ef Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 31 Dec 2019 03:44:39 +0100 Subject: [PATCH] WindowServer: Don't deactivate windows after moving them Also make sure we send out the WM event for window deactivations. This fixes an issue where the taskbar button for a window would appear depressed, even after the window was deactivated. --- Servers/WindowServer/WSWindowManager.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Servers/WindowServer/WSWindowManager.cpp b/Servers/WindowServer/WSWindowManager.cpp index 74f4a9d56a..b76234213d 100644 --- a/Servers/WindowServer/WSWindowManager.cpp +++ b/Servers/WindowServer/WSWindowManager.cpp @@ -963,7 +963,7 @@ void WSWindowManager::process_mouse_event(WSMouseEvent& event, WSWindow*& hovere }); // Clicked outside of any window - if (!hovered_window && event.type() == WSEvent::MouseDown) + if (!hovered_window && !event_window_with_frame && event.type() == WSEvent::MouseDown) set_active_window(nullptr); } @@ -1109,6 +1109,7 @@ void WSWindowManager::set_active_window(WSWindow* window) CEventLoop::current().post_event(*previously_active_window, make(WSEvent::WindowDeactivated)); invalidate(*previously_active_window); m_active_window = nullptr; + tell_wm_listeners_window_state_changed(*previously_active_window); } if (window) { @@ -1120,8 +1121,6 @@ void WSWindowManager::set_active_window(WSWindow* window) auto* client = window->client(); ASSERT(client); set_current_menubar(client->app_menubar()); - if (previously_active_window) - tell_wm_listeners_window_state_changed(*previously_active_window); tell_wm_listeners_window_state_changed(*m_active_window); }