diff options
| author | Richard M. Stallman | 2002-12-22 22:00:44 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 2002-12-22 22:00:44 +0000 |
| commit | fa74535d4483ab0107607da3e7a85472fb1765c4 (patch) | |
| tree | 1036ebc7f39f23d1e05be247b555d1e927554d09 | |
| parent | c67af3f49f5dfac6d7a0cfe8643422c97b8909fc (diff) | |
| download | emacs-fa74535d4483ab0107607da3e7a85472fb1765c4.tar.gz emacs-fa74535d4483ab0107607da3e7a85472fb1765c4.zip | |
(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.
| -rw-r--r-- | lwlib/xlwmenu.c | 14 |
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 | |||
| 316 | pop_new_stack_if_no_contents (mw) | 316 | pop_new_stack_if_no_contents (mw) |
| 317 | XlwMenuWidget mw; | 317 | XlwMenuWidget mw; |
| 318 | { | 318 | { |
| 319 | if (mw->menu.new_depth) | 319 | if (mw->menu.new_depth > 1) |
| 320 | { | 320 | { |
| 321 | if (!mw->menu.new_stack [mw->menu.new_depth - 1]->contents) | 321 | if (!mw->menu.new_stack [mw->menu.new_depth - 1]->contents) |
| 322 | mw->menu.new_depth -= 1; | 322 | mw->menu.new_depth -= 1; |
| @@ -1397,7 +1397,7 @@ remap_menubar (mw) | |||
| 1397 | 1397 | ||
| 1398 | /* unmap the menus that popped down */ | 1398 | /* unmap the menus that popped down */ |
| 1399 | for (i = new_depth - 1; i < old_depth; i++) | 1399 | for (i = new_depth - 1; i < old_depth; i++) |
| 1400 | if (i >= new_depth || !new_stack[i]->contents) | 1400 | if (i >= new_depth || (i > 0 && !new_stack[i]->contents)) |
| 1401 | XUnmapWindow (XtDisplay (mw), windows[i].window); | 1401 | XUnmapWindow (XtDisplay (mw), windows[i].window); |
| 1402 | } | 1402 | } |
| 1403 | 1403 | ||
| @@ -2184,6 +2184,16 @@ Left (w, ev, params, num_params) | |||
| 2184 | the menu-bar. If the current item is the first one, highlight the | 2184 | the menu-bar. If the current item is the first one, highlight the |
| 2185 | last item in the menubar (probably Help). */ | 2185 | last item in the menubar (probably Help). */ |
| 2186 | set_new_state (mw, find_prev_selectable (mw, selected_item), mw->menu.old_depth - 1); | 2186 | set_new_state (mw, find_prev_selectable (mw, selected_item), mw->menu.old_depth - 1); |
| 2187 | else if (mw->menu.old_depth == 1 | ||
| 2188 | && selected_item->contents) /* Is this menu item expandable? */ | ||
| 2189 | { | ||
| 2190 | set_new_state (mw, selected_item->contents, mw->menu.old_depth); | ||
| 2191 | remap_menubar (mw); | ||
| 2192 | selected_item = mw->menu.old_stack [mw->menu.old_depth - 1]; | ||
| 2193 | if (!selected_item->enabled && find_first_selectable (mw, selected_item)) | ||
| 2194 | set_new_state (mw, find_first_selectable (mw, selected_item), mw->menu.old_depth - 1); | ||
| 2195 | } | ||
| 2196 | |||
| 2187 | else | 2197 | else |
| 2188 | { | 2198 | { |
| 2189 | pop_new_stack_if_no_contents (mw); | 2199 | pop_new_stack_if_no_contents (mw); |