]> Dogcows Code - chaz/openbox/blobdiff - openbox/event.c
return FALSE if a grab fails
[chaz/openbox] / openbox / event.c
index e9e85f0be2c3ef7efbc576f9955573aba888aa57..2a47ef091c7ed264df5162bdea98bb9156fe9fe9 100644 (file)
@@ -1001,6 +1001,7 @@ static void event_handle_menu(Client *client, XEvent *e)
             else
                 menu_control_mouseover(over, FALSE);
             menu_entry_render(over);
+            over = NULL;
         }
 /*
         if (top->hide)
@@ -1032,6 +1033,15 @@ static void event_handle_menu(Client *client, XEvent *e)
                                                     m->location.x,
                                                     e->xbutton.y_root -
                                                     m->location.y))) {
+                    if (over) {
+                        if (over->parent->mouseover)
+                            over->parent->mouseover(over, FALSE);
+                        else
+                            menu_control_mouseover(over, FALSE); 
+                        menu_entry_render(over);
+                        over = NULL;
+                    }
+                    /* this hides the menu */
                     menu_entry_fire(entry);
                 }
                 break;
@@ -1042,9 +1052,10 @@ static void event_handle_menu(Client *client, XEvent *e)
                 if (over->parent->mouseover)
                     over->parent->mouseover(over, FALSE);
                 else
-                    menu_control_mouseover(over, FALSE);
+                    menu_control_mouseover(over, FALSE); 
+                menu_entry_render(over);
+                over = NULL;
             }
-            menu_entry_render(over);
 /*
             if (top->hide)
                 top->hide(top);
This page took 0.02034 seconds and 4 git commands to generate.