diff options
author | Andreas Kling <kling@serenityos.org> | 2021-06-18 17:25:15 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-06-18 17:40:05 +0200 |
commit | 1537172a6b378c1b9e01495214b557abffd16bc9 (patch) | |
tree | 4e5b7d30cf58f3bb72c820a0d81a1a86b05ce23f /Userland/Services/WindowServer/WindowManager.cpp | |
parent | b5251a70c68bf1caf910701224a45b62bcccfadd (diff) | |
download | serenity-1537172a6b378c1b9e01495214b557abffd16bc9.zip |
WindowServer: Simplify handling of the window resize candidate
Always clear the current resize candidate when starting new mouse
event processing (instead of trying to be smart about it.)
Diffstat (limited to 'Userland/Services/WindowServer/WindowManager.cpp')
-rw-r--r-- | Userland/Services/WindowServer/WindowManager.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/Userland/Services/WindowServer/WindowManager.cpp b/Userland/Services/WindowServer/WindowManager.cpp index 387db5ac76..08d980b877 100644 --- a/Userland/Services/WindowServer/WindowManager.cpp +++ b/Userland/Services/WindowServer/WindowManager.cpp @@ -955,9 +955,6 @@ void WindowManager::process_mouse_event_for_window(HitTestResult& result, MouseE return; } - if (&window != m_resize_candidate.ptr()) - clear_resize_candidate(); - // First check if we should initiate a move or resize (Super+LMB or Super+RMB). // In those cases, the event is swallowed by the window manager. if (window.is_movable()) { @@ -994,6 +991,10 @@ void WindowManager::process_mouse_event_for_window(HitTestResult& result, MouseE void WindowManager::process_mouse_event(MouseEvent& event) { + // 0. Forget the resize candidate (window that we could initiate a resize of from the current cursor position.) + // A new resize candidate may be determined if we hit an appropriate part of a window. + clear_resize_candidate(); + // 1. Process ongoing drag events. This is done first to avoid clashing with global cursor tracking. if (process_ongoing_drag(event)) return; @@ -1038,7 +1039,6 @@ void WindowManager::process_mouse_event(MouseEvent& event) if (MenuManager::the().has_open_menu() || hitting_menu_in_window_with_active_menu) { - clear_resize_candidate(); if (!hitting_menu_in_window_with_active_menu) { MenuManager::the().dispatch_event(event); @@ -1056,7 +1056,6 @@ void WindowManager::process_mouse_event(MouseEvent& event) // FIXME: Is this actually necessary? The desktop window should catch everything anyway. set_active_window(nullptr); } - clear_resize_candidate(); return; } |