summaryrefslogtreecommitdiff
path: root/openbox/event.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2010-01-11 16:20:53 -0500
committerDana Jansens <danakj@orodu.net>2010-01-11 16:20:53 -0500
commit567fd15eebdd44e50cef140419dbf7a336708109 (patch)
tree3b3691719c704d6da4454bd78e17ec8b495ee76a /openbox/event.c
parent3e9dbc01430193035e3d1f5832c019c3f9623db8 (diff)
parente8200ae603f33b70824c125ba6b37bfaec7d89ea (diff)
Merge branch 'backport' into work
Conflicts: configure.ac data/rc.xml openbox/client.c openbox/event.c openbox/focus_cycle.c openbox/focus_cycle_popup.c openbox/openbox.c openbox/prop.c openbox/prop.h openbox/screen.c parser/parse.c version.h.in
Diffstat (limited to 'openbox/event.c')
-rw-r--r--openbox/event.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/openbox/event.c b/openbox/event.c
index e279c9db..45ae101e 100644
--- a/openbox/event.c
+++ b/openbox/event.c
@@ -1816,7 +1816,12 @@ static gboolean event_handle_menu_input(XEvent *ev)
else if (ob_keycode_match(keycode, OB_KEY_RIGHT)) {
/* Right goes to the selected submenu */
- if (frame->child) menu_frame_select_next(frame->child);
+ if (frame->selected->entry->type == OB_MENU_ENTRY_TYPE_SUBMENU)
+ {
+ /* make sure it is visible */
+ menu_frame_select(frame, frame->selected, TRUE);
+ menu_frame_select_next(frame->child);
+ }
ret = TRUE;
}
@@ -1829,6 +1834,16 @@ static gboolean event_handle_menu_input(XEvent *ev)
menu_frame_select_next(frame);
ret = TRUE;
}
+
+ else if (ob_keycode_match(keycode, OB_KEY_HOME)) {
+ menu_frame_select_first(frame);
+ ret = TRUE;
+ }
+
+ else if (ob_keycode_match(keycode, OB_KEY_END)) {
+ menu_frame_select_last(frame);
+ ret = TRUE;
+ }
}
/* Use KeyRelease events for running things so that the key release