X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient_list_menu.c;h=f3df2a5aec1ba5a4e209bfad744e006cfd6e5ad3;hb=HEAD;hp=263b3398514cb70c07686d457f494cb7e6ca418e;hpb=4f93731cdbecbf43b82aa000c07ec8b40f97dd03;p=chaz%2Fopenbox diff --git a/openbox/client_list_menu.c b/openbox/client_list_menu.c index 263b3398..f3df2a5a 100644 --- a/openbox/client_list_menu.c +++ b/openbox/client_list_menu.c @@ -55,7 +55,7 @@ static gboolean desk_menu_update(ObMenuFrame *frame, gpointer data) for (it = focus_order; it; it = g_list_next(it)) { ObClient *c = it->data; if (focus_valid_target(c, d->desktop, - TRUE, TRUE, FALSE, FALSE, FALSE, FALSE)) { + TRUE, TRUE, FALSE, TRUE, FALSE, FALSE, FALSE)) { ObMenuEntry *e; empty = FALSE; @@ -121,6 +121,16 @@ static void desk_menu_destroy(ObMenu *menu, gpointer data) desktop_menus = g_slist_remove(desktop_menus, menu); } +static void self_cleanup(ObMenu *menu, gpointer data) +{ + menu_clear_entries(menu); + + while (desktop_menus) { + menu_free(desktop_menus->data); + desktop_menus = g_slist_delete_link(desktop_menus, desktop_menus); + } +} + static gboolean self_update(ObMenuFrame *frame, gpointer data) { ObMenu *menu = frame->menu; @@ -203,6 +213,7 @@ void client_list_menu_startup(gboolean reconfig) menu = menu_new(MENU_NAME, _("Desktops"), TRUE, NULL); menu_set_update_func(menu, self_update); + menu_set_cleanup_func(menu, self_cleanup); menu_set_execute_func(menu, self_execute); }