From 2b2c317c2d18fcf331ea12e8bef6ba6a7df63fee Mon Sep 17 00:00:00 2001 From: thankyouverycool <66646555+thankyouverycool@users.noreply.github.com> Date: Mon, 22 Aug 2022 14:17:58 -0400 Subject: [PATCH] WindowServer: Don't let modals minimize themselves But do allow them to remain minimizable by a parent. This is a nice ergonomics fix to allow a parent window to quickly minimize and restore all its modal children. --- Userland/Services/WindowServer/Window.cpp | 2 +- Userland/Services/WindowServer/WindowFrame.cpp | 4 ++-- Userland/Services/WindowServer/WindowManager.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Userland/Services/WindowServer/Window.cpp b/Userland/Services/WindowServer/Window.cpp index 4f9b8b38e7..748d9b1564 100644 --- a/Userland/Services/WindowServer/Window.cpp +++ b/Userland/Services/WindowServer/Window.cpp @@ -228,7 +228,7 @@ void Window::update_window_menu_items() return; m_window_menu_minimize_item->set_text(m_minimized_state != WindowMinimizedState::None ? "&Unminimize" : "Mi&nimize"); - m_window_menu_minimize_item->set_enabled(m_minimizable); + m_window_menu_minimize_item->set_enabled(m_minimizable && !is_modal()); m_window_menu_maximize_item->set_text(is_maximized() ? "&Restore" : "Ma&ximize"); m_window_menu_maximize_item->set_enabled(m_resizable); diff --git a/Userland/Services/WindowServer/WindowFrame.cpp b/Userland/Services/WindowServer/WindowFrame.cpp index 0cf8eb866a..0756e54c31 100644 --- a/Userland/Services/WindowServer/WindowFrame.cpp +++ b/Userland/Services/WindowServer/WindowFrame.cpp @@ -107,7 +107,7 @@ void WindowFrame::window_was_constructed(Badge) m_buttons.append(move(button)); } - if (m_window.is_minimizable()) { + if (m_window.is_minimizable() && !m_window.is_modal()) { auto button = make