summaryrefslogtreecommitdiff
path: root/lwlib
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2002-12-22 22:00:44 +0000
committerRichard M. Stallman <rms@gnu.org>2002-12-22 22:00:44 +0000
commit4d2be5d132712aa959d14011e1f895d708898d8a (patch)
tree23c2dbd23d10a3599233071271414a5a1b63ed23 /lwlib
parentcb830aaa2c762ef01016cb511eb8c614c09ad8c3 (diff)
downloademacs-4d2be5d132712aa959d14011e1f895d708898d8a.tar.gz
(pop_new_stack_if_no_contents): Do nothing if new_depth is 1.
(remap_menubar): Don't look in new_stack[0]. (Left): At level 1, do the same thing Right does.
Diffstat (limited to 'lwlib')
-rw-r--r--lwlib/xlwmenu.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/lwlib/xlwmenu.c b/lwlib/xlwmenu.c
index a1810f6d183..fc3abef503b 100644
--- a/lwlib/xlwmenu.c
+++ b/lwlib/xlwmenu.c
@@ -316,7 +316,7 @@ static void
pop_new_stack_if_no_contents (mw)
XlwMenuWidget mw;
{
- if (mw->menu.new_depth)
+ if (mw->menu.new_depth > 1)
{
if (!mw->menu.new_stack [mw->menu.new_depth - 1]->contents)
mw->menu.new_depth -= 1;
@@ -1397,7 +1397,7 @@ remap_menubar (mw)
/* unmap the menus that popped down */
for (i = new_depth - 1; i < old_depth; i++)
- if (i >= new_depth || !new_stack[i]->contents)
+ if (i >= new_depth || (i > 0 && !new_stack[i]->contents))
XUnmapWindow (XtDisplay (mw), windows[i].window);
}
@@ -2184,6 +2184,16 @@ Left (w, ev, params, num_params)
the menu-bar. If the current item is the first one, highlight the
last item in the menubar (probably Help). */
set_new_state (mw, find_prev_selectable (mw, selected_item), mw->menu.old_depth - 1);
+ else if (mw->menu.old_depth == 1
+ && selected_item->contents) /* Is this menu item expandable? */
+ {
+ set_new_state (mw, selected_item->contents, mw->menu.old_depth);
+ remap_menubar (mw);
+ selected_item = mw->menu.old_stack [mw->menu.old_depth - 1];
+ if (!selected_item->enabled && find_first_selectable (mw, selected_item))
+ set_new_state (mw, find_first_selectable (mw, selected_item), mw->menu.old_depth - 1);
+ }
+
else
{
pop_new_stack_if_no_contents (mw);