summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Servers/WindowServer/WSWindow.cpp4
-rw-r--r--Servers/WindowServer/WSWindowFrame.cpp3
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;