summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openbox/event.c6
-rw-r--r--openbox/menuframe.c4
2 files changed, 7 insertions, 3 deletions
diff --git a/openbox/event.c b/openbox/event.c
index ad9dade6..58e947fa 100644
--- a/openbox/event.c
+++ b/openbox/event.c
@@ -1712,7 +1712,11 @@ static gboolean event_handle_menu_keyboard(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;
}
diff --git a/openbox/menuframe.c b/openbox/menuframe.c
index 076fe6ef..3d2b4302 100644
--- a/openbox/menuframe.c
+++ b/openbox/menuframe.c
@@ -1289,7 +1289,7 @@ void menu_frame_select_previous(ObMenuFrame *self)
}
}
}
- menu_frame_select(self, it ? it->data : NULL, TRUE);
+ menu_frame_select(self, it ? it->data : NULL, FALSE);
}
void menu_frame_select_next(ObMenuFrame *self)
@@ -1314,5 +1314,5 @@ void menu_frame_select_next(ObMenuFrame *self)
}
}
}
- menu_frame_select(self, it ? it->data : NULL, TRUE);
+ menu_frame_select(self, it ? it->data : NULL, FALSE);
}