X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fmenuframe.c;h=e27bde0169ed9e8644bfef2f54dc9c8cf90e55c1;hb=8de54d2b455ef3ec50bf2d00adeb65727e4fa158;hp=7052296e14fadec50bd60e50e3fb79f2413cf49e;hpb=a991c07bc1a1f86fd47db0e5442a629f3c39b407;p=chaz%2Fopenbox diff --git a/openbox/menuframe.c b/openbox/menuframe.c index 7052296e..e27bde01 100644 --- a/openbox/menuframe.c +++ b/openbox/menuframe.c @@ -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);