]> Dogcows Code - chaz/openbox/commitdiff
fix a crash with the focused client closing during the delay of a submenu being shown...
authorDana Jansens <danakj@orodu.net>
Sun, 22 Jul 2007 03:56:26 +0000 (23:56 -0400)
committerDana Jansens <danakj@orodu.net>
Sun, 22 Jul 2007 03:56:26 +0000 (23:56 -0400)
openbox/menuframe.c

index d2f513c430e28c5b9f5fd4d4577bb53744ec2aec..2c666e3f3eceb0386e05f2252d4e8d9d58823104 100644 (file)
@@ -1075,8 +1075,14 @@ void menu_frame_hide_all_client(ObClient *client)
     GList *it = g_list_last(menu_frame_visible);
     if (it) {
         ObMenuFrame *f = it->data;
-        if (f->client == client)
+        if (f->client == client) {
+            if (config_submenu_show_delay) {
+                /* remove any submenu open requests */
+                ob_main_loop_timeout_remove(ob_main_loop,
+                                            menu_entry_frame_submenu_timeout);
+            }
             menu_frame_hide(f);
+        }
     }
 }
 
@@ -1121,6 +1127,7 @@ ObMenuEntryFrame* menu_entry_frame_under(gint x, gint y)
 
 static gboolean menu_entry_frame_submenu_timeout(gpointer data)
 {
+    g_assert(menu_frame_visible);
     menu_entry_frame_show_submenu((ObMenuEntryFrame*)data);
     return FALSE;
 }
This page took 0.025312 seconds and 4 git commands to generate.