summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-05-19 20:58:10 +0000
committerDana Jansens <danakj@orodu.net>2007-05-19 20:58:10 +0000
commit83da4ec9398d197f39461cd7305163b2676840c8 (patch)
tree6c31a2cac15d607198558d87627fbc23564b71d8 /openbox
parentea272a93efe26bb6c0b0d9278cee4a67cc9c872e (diff)
fix escape's behavior in menus. make static stuff that shouldnt be used by others
Diffstat (limited to 'openbox')
-rw-r--r--openbox/event.c7
-rw-r--r--openbox/menuframe.c3
-rw-r--r--openbox/menuframe.h1
3 files changed, 7 insertions, 4 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 ||
diff --git a/openbox/menuframe.c b/openbox/menuframe.c
index 68ea4949..b908ad4f 100644
--- a/openbox/menuframe.c
+++ b/openbox/menuframe.c
@@ -45,6 +45,7 @@ static ObMenuEntryFrame* menu_entry_frame_new(ObMenuEntry *entry,
static void menu_entry_frame_free(ObMenuEntryFrame *self);
static void menu_frame_update(ObMenuFrame *self);
static gboolean menu_entry_frame_submenu_timeout(gpointer data);
+static void menu_frame_hide(ObMenuFrame *self);
static Window createWindow(Window parent, gulong mask,
XSetWindowAttributes *attrib)
@@ -1013,7 +1014,7 @@ gboolean menu_frame_show_submenu(ObMenuFrame *self, ObMenuFrame *parent,
return TRUE;
}
-void menu_frame_hide(ObMenuFrame *self)
+static void menu_frame_hide(ObMenuFrame *self)
{
GList *it = g_list_find(menu_frame_visible, self);
diff --git a/openbox/menuframe.h b/openbox/menuframe.h
index 4f896ec8..e1f4b15b 100644
--- a/openbox/menuframe.h
+++ b/openbox/menuframe.h
@@ -128,7 +128,6 @@ gboolean menu_frame_show_topmenu(ObMenuFrame *self, gint x, gint y,
gint button);
gboolean menu_frame_show_submenu(ObMenuFrame *self, ObMenuFrame *parent,
ObMenuEntryFrame *parent_entry);
-void menu_frame_hide(ObMenuFrame *self);
void menu_frame_hide_all();
void menu_frame_hide_all_client(struct _ObClient *client);