From 6f316d59f404c0689ef6138f4400c1c2c1bb08e3 Mon Sep 17 00:00:00 2001
From: thankyouverycool <66646555+thankyouverycool@users.noreply.github.com>
Date: Mon, 22 Aug 2022 18:18:56 -0400
Subject: [PATCH] WindowServer: Restore modal chains from the Taskbar and
Switcher
And only show modeless windows in WindowSwitcher.
---
.../Services/WindowServer/WMConnectionFromClient.cpp | 3 +--
Userland/Services/WindowServer/WindowManager.cpp | 10 ++++++++++
Userland/Services/WindowServer/WindowManager.h | 1 +
Userland/Services/WindowServer/WindowSwitcher.cpp | 5 ++---
4 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/Userland/Services/WindowServer/WMConnectionFromClient.cpp b/Userland/Services/WindowServer/WMConnectionFromClient.cpp
index df213a5047..49e383907f 100644
--- a/Userland/Services/WindowServer/WMConnectionFromClient.cpp
+++ b/Userland/Services/WindowServer/WMConnectionFromClient.cpp
@@ -63,8 +63,7 @@ void WMConnectionFromClient::set_active_window(i32 client_id, i32 window_id)
return;
}
auto& window = *(*it).value;
- WindowManager::the().minimize_windows(window, false);
- WindowManager::the().move_to_front_and_make_active(window);
+ WindowManager::the().restore_modal_chain(window);
}
void WMConnectionFromClient::popup_window_menu(i32 client_id, i32 window_id, Gfx::IntPoint const& screen_position)
diff --git a/Userland/Services/WindowServer/WindowManager.cpp b/Userland/Services/WindowServer/WindowManager.cpp
index 418b827cf0..90f014c22b 100644
--- a/Userland/Services/WindowServer/WindowManager.cpp
+++ b/Userland/Services/WindowServer/WindowManager.cpp
@@ -2124,6 +2124,16 @@ void WindowManager::did_popup_a_menu(Badge