From 6e799ad40d8f313383dda1ac143eae14c41b9c89 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Tue, 11 May 2010 19:01:46 -0400 Subject: add cleanup functions to the client list menus that removes everything from them when they are not being shown (saves iterating thru the list uselessly when a client is unmanaged) --- openbox/client_list_combined_menu.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'openbox/client_list_combined_menu.c') diff --git a/openbox/client_list_combined_menu.c b/openbox/client_list_combined_menu.c index f664b776..c26b6fa0 100644 --- a/openbox/client_list_combined_menu.c +++ b/openbox/client_list_combined_menu.c @@ -37,6 +37,11 @@ static ObMenu *combined_menu; #define ADD_DESKTOP -2 #define REMOVE_DESKTOP -3 +static void self_cleanup(ObMenu *menu, gpointer data) +{ + menu_clear_entries(menu); +} + static gboolean self_update(ObMenuFrame *frame, gpointer data) { ObMenu *menu = frame->menu; @@ -151,6 +156,7 @@ void client_list_combined_menu_startup(gboolean reconfig) combined_menu = menu_new(MENU_NAME, _("Windows"), TRUE, NULL); menu_set_update_func(combined_menu, self_update); + menu_set_cleanup_func(combined_menu, self_cleanup); menu_set_execute_func(combined_menu, menu_execute); } -- cgit v1.2.3