summaryrefslogtreecommitdiff
path: root/openbox/event.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbox/event.c')
-rw-r--r--openbox/event.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/openbox/event.c b/openbox/event.c
index 8f211202..ace548a6 100644
--- a/openbox/event.c
+++ b/openbox/event.c
@@ -1482,8 +1482,11 @@ static gboolean event_handle_menu_keyboard(XEvent *ev)
ret = FALSE;
else if (keycode == ob_keycode(OB_KEY_ESCAPE) && state == 0) {
- /* Escape closes the active menu */
- menu_frame_hide(frame);
+ /* Escape goes to the parent menu or closes the last one */
+ if (frame->parent)
+ menu_frame_select(frame, NULL, TRUE);
+ else
+ menu_frame_hide_all();
}
else if (keycode == ob_keycode(OB_KEY_RETURN) && (state == 0 ||