diff options
-rw-r--r-- | Servers/WindowServer/WSWindow.cpp | 4 | ||||
-rw-r--r-- | Servers/WindowServer/WSWindowFrame.cpp | 3 |
2 files changed, 7 insertions, 0 deletions
diff --git a/Servers/WindowServer/WSWindow.cpp b/Servers/WindowServer/WSWindow.cpp index a9980b9d94..d2befbcafc 100644 --- a/Servers/WindowServer/WSWindow.cpp +++ b/Servers/WindowServer/WSWindow.cpp @@ -153,6 +153,8 @@ void WSWindow::set_minimized(bool minimized) return; if (minimized && !m_minimizable) return; + if (is_blocked_by_modal_window()) + return; m_minimized = minimized; update_menu_item_text(PopupMenuItem::Minimize); start_minimize_animation(); @@ -193,6 +195,8 @@ void WSWindow::set_maximized(bool maximized) return; if (maximized && !is_resizable()) return; + if (is_blocked_by_modal_window()) + return; set_tiled(WindowTileType::None); m_maximized = maximized; update_menu_item_text(PopupMenuItem::Maximize); diff --git a/Servers/WindowServer/WSWindowFrame.cpp b/Servers/WindowServer/WSWindowFrame.cpp index 8ec0951006..29da743144 100644 --- a/Servers/WindowServer/WSWindowFrame.cpp +++ b/Servers/WindowServer/WSWindowFrame.cpp @@ -306,6 +306,9 @@ void WSWindowFrame::on_mouse_event(const WSMouseEvent& event) { ASSERT(!m_window.is_fullscreen()); + if (m_window.is_blocked_by_modal_window()) + return; + auto& wm = WSWindowManager::the(); if (m_window.type() != WSWindowType::Normal) return; |