summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openbox/actions/execute.c3
-rw-r--r--openbox/menuframe.c2
2 files changed, 3 insertions, 2 deletions
diff --git a/openbox/actions/execute.c b/openbox/actions/execute.c
index 77244d8f..0e9e7387 100644
--- a/openbox/actions/execute.c
+++ b/openbox/actions/execute.c
@@ -206,7 +206,8 @@ static gboolean run_func(ObActionsData *data, gpointer options)
/* If there is a keyboard grab going on then we need to cancel
it so the application can grab things */
- event_cancel_all_key_grabs();
+ if (data->uact != OB_USER_ACTION_MENU_SELECTION)
+ event_cancel_all_key_grabs();
e = NULL;
if (!g_shell_parse_argv(cmd, NULL, &argv, &e)) {
diff --git a/openbox/menuframe.c b/openbox/menuframe.c
index b235f5eb..afffc837 100644
--- a/openbox/menuframe.c
+++ b/openbox/menuframe.c
@@ -1266,7 +1266,7 @@ void menu_entry_frame_execute(ObMenuEntryFrame *self, guint state)
/* release grabs before executing the shit */
if (!(state & ControlMask)) {
- menu_frame_hide_all();
+ event_cancel_all_key_grabs();
frame = NULL;
}