diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-08-30 17:46:23 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-08-30 17:46:23 +0000 |
| commit | 8e76e328639ba42cdafa5306f924b0491faec969 (patch) | |
| tree | 286b5d45b2adece699b87455aa9fbfadb7e86aec /openbox/menu.c | |
| parent | 2c6c0757fa497f4c1e0648bcbb1927c0fa12862f (diff) | |
add destructor functions for clients that you acn subscribe with, and use these instead of hardcoding special cases in the unmanage code
Diffstat (limited to 'openbox/menu.c')
| -rw-r--r-- | openbox/menu.c | 11 |
1 files changed, 11 insertions, 0 deletions
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; |
