]> Dogcows Code - chaz/openbox/blobdiff - openbox/menuframe.c
dont lose the menu selection while puttin the mouse over a separator (properly)
[chaz/openbox] / openbox / menuframe.c
index 7052296e14fadec50bd60e50e3fb79f2413cf49e..e27bde0169ed9e8644bfef2f54dc9c8cf90e55c1 100644 (file)
@@ -617,12 +617,12 @@ void menu_frame_select(ObMenuFrame *self, ObMenuEntryFrame *entry)
     ObMenuEntryFrame *old = self->selected;
     ObMenuFrame *oldchild = self->child;
 
+    if (entry && entry->entry->type == OB_MENU_ENTRY_TYPE_SEPARATOR)
+        entry = old;
+
     if (old == entry) return;
 
-    if (entry && entry->entry->type != OB_MENU_ENTRY_TYPE_SEPARATOR)
-        self->selected = entry;
-    else
-        self->selected = NULL;
+    self->selected = entry;
 
     if (old)
         menu_entry_frame_render(old);
@@ -667,7 +667,8 @@ void menu_entry_frame_execute(ObMenuEntryFrame *self, gboolean hide)
         ObClient *client = self->frame->client;
 
         /* release grabs before executing the shit */
-        menu_frame_hide_all();
+        if (hide)
+            menu_frame_hide_all();
 
         if (func)
             func(entry, data);
This page took 0.021015 seconds and 4 git commands to generate.