From fb935354192b07f28da17a89175f1f6e1e72eec2 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 10 May 2021 11:52:30 +0200 Subject: [PATCH] WindowServer+LibGUI: Make menu and menubar teardown asynchronous Clients don't need to wait for WindowServer to tear down a menu or menubar before continuing. --- Userland/Libraries/LibGUI/Menu.cpp | 2 +- Userland/Libraries/LibGUI/Menubar.cpp | 2 +- Userland/Services/WindowServer/WindowServer.ipc | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Userland/Libraries/LibGUI/Menu.cpp b/Userland/Libraries/LibGUI/Menu.cpp index bd6cb4cc92..a06e69ca66 100644 --- a/Userland/Libraries/LibGUI/Menu.cpp +++ b/Userland/Libraries/LibGUI/Menu.cpp @@ -123,7 +123,7 @@ void Menu::unrealize_menu() if (m_menu_id == -1) return; all_menus().remove(m_menu_id); - WindowServerConnection::the().destroy_menu(m_menu_id); + WindowServerConnection::the().async_destroy_menu(m_menu_id); m_menu_id = -1; } diff --git a/Userland/Libraries/LibGUI/Menubar.cpp b/Userland/Libraries/LibGUI/Menubar.cpp index 8fda7c477f..c347bdf81b 100644 --- a/Userland/Libraries/LibGUI/Menubar.cpp +++ b/Userland/Libraries/LibGUI/Menubar.cpp @@ -37,7 +37,7 @@ void Menubar::unrealize_menubar() { if (m_menubar_id == -1) return; - WindowServerConnection::the().destroy_menubar(m_menubar_id); + WindowServerConnection::the().async_destroy_menubar(m_menubar_id); m_menubar_id = -1; } diff --git a/Userland/Services/WindowServer/WindowServer.ipc b/Userland/Services/WindowServer/WindowServer.ipc index aa7da699fc..f74773243a 100644 --- a/Userland/Services/WindowServer/WindowServer.ipc +++ b/Userland/Services/WindowServer/WindowServer.ipc @@ -3,10 +3,10 @@ endpoint WindowServer greet() => (Gfx::IntRect screen_rect, Core::AnonymousBuffer theme_buffer) create_menubar() => (i32 menubar_id) - destroy_menubar(i32 menubar_id) => () + destroy_menubar(i32 menubar_id) =| create_menu([UTF8] String menu_title) => (i32 menu_id) - destroy_menu(i32 menu_id) => () + destroy_menu(i32 menu_id) =| add_menu_to_menubar(i32 menubar_id, i32 menu_id) =|