X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fmenu.c;h=c8e16e482ace489783d852ff491ac56a32836a01;hb=ba64eb20dbea9ca2917c2daddfcb05d317d82452;hp=8a4c28b98ff0892a1961dcd5e1f7256427c2f890;hpb=c3b02749d72e0077aff85f29d7a28e5ba329b071;p=chaz%2Fopenbox diff --git a/openbox/menu.c b/openbox/menu.c index 8a4c28b9..c8e16e48 100644 --- a/openbox/menu.c +++ b/openbox/menu.c @@ -55,6 +55,13 @@ static gboolean menu_open(gchar *file, xmlDocPtr *doc, xmlNodePtr *node) return loaded; } +static void client_dest(ObClient *c) +{ + /* menus can be associated with a client, so close any that are since + we are disappearing now */ + menu_frame_hide_all_client(c); +} + void menu_startup() { xmlDocPtr doc; @@ -91,10 +98,14 @@ void menu_startup() g_assert(menu_parse_state.menus == NULL); } + + client_add_destructor(client_dest); } void menu_shutdown() { + client_remove_destructor(client_dest); + parse_shutdown(menu_parse_inst); menu_parse_inst = NULL;