Selaa lähdekoodia

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.
Andreas Kling 4 vuotta sitten
vanhempi
commit
fb93535419

+ 1 - 1
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;
 }
 

+ 1 - 1
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;
 }
 

+ 2 - 2
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) =|