X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient_menu.c;h=f538eafd7f36ae263a81e2feecd8bba0f932073a;hb=b8f207892a11b53365c47b4828254269fca5c8e9;hp=13a73d0554b149f16f0a45e4db95aa98b26e8bfa;hpb=e40624b5c102f83def5f191c630af4fa0c21eab7;p=chaz%2Fopenbox diff --git a/openbox/client_menu.c b/openbox/client_menu.c index 13a73d05..f538eafd 100644 --- a/openbox/client_menu.c +++ b/openbox/client_menu.c @@ -24,6 +24,7 @@ #include "openbox.h" #include "frame.h" #include "moveresize.h" +#include "event.h" #include "prop.h" #include "gettext.h" @@ -90,7 +91,7 @@ static gboolean client_menu_update(ObMenuFrame *frame, gpointer data) *en = c->functions & OB_CLIENT_FUNC_CLOSE; break; case CLIENT_DECORATE: - *en = client_normal(c); + *en = c->functions & OB_CLIENT_FUNC_UNDECORATE; break; default: *en = TRUE; @@ -153,6 +154,8 @@ static void client_menu_execute(ObMenuEntry *e, ObMenuFrame *f, g_assert_not_reached(); } + event_ignore_all_queued_enters(); + /* update the menu cuz stuff can have changed */ if (f) { client_menu_update(f, NULL); @@ -176,13 +179,13 @@ static gboolean layer_menu_update(ObMenuFrame *frame, gpointer data) if (e->type == OB_MENU_ENTRY_TYPE_NORMAL) { switch (e->id) { case LAYER_TOP: - *en = !c->above; + *en = !c->above && (c->functions & OB_CLIENT_FUNC_ABOVE); break; case LAYER_NORMAL: *en = c->above || c->below; break; case LAYER_BOTTOM: - *en = !c->below; + *en = !c->below && (c->functions & OB_CLIENT_FUNC_BELOW); break; default: *en = TRUE; @@ -212,6 +215,8 @@ static void layer_menu_execute(ObMenuEntry *e, ObMenuFrame *f, g_assert_not_reached(); } + event_ignore_all_queued_enters(); + /* update the menu cuz stuff can have changed */ if (f) { layer_menu_update(f, NULL);