diff --git a/doc/fixes5-0-1.txt b/doc/fixes5-0-1.txt index 17fb06f49..fd3944165 100644 --- a/doc/fixes5-0-1.txt +++ b/doc/fixes5-0-1.txt @@ -245,6 +245,7 @@ X11: obey timed_delay X11: improve TTY-style status line with text attributes for status hilites, hitpointbar, some unicode support, 3-line status X11: fix menu windows being taller than the screen +X11: allow menu scrolling by pageup/pagedown/home/end keys General New Features diff --git a/win/X11/winmenu.c b/win/X11/winmenu.c index 4e2210966..927e99e77 100644 --- a/win/X11/winmenu.c +++ b/win/X11/winmenu.c @@ -77,6 +77,10 @@ static const char menu_translations[] = "#override\n\ Right: scroll(6)\n\ Up: scroll(8)\n\ Down: scroll(2)\n\ + Prior: menu_key(<)\n\ + Next: menu_key(>)\n\ + Home: menu_key(^)\n\ + End: menu_key(|)\n\ : scroll(8)\n\ : scroll(2)\n\ : menu_key()"; @@ -233,14 +237,14 @@ menu_key(Widget w, XEvent *event, String *params, Cardinal *num_params) int count; boolean selected_something, perminv_scrolling = (event == &fake_perminv_event); - - nhUse(params); - nhUse(num_params); + Cardinal in_nparams = (num_params ? *num_params : 0); wp = find_widget(w); menu_info = wp->menu_information; - if (!perminv_scrolling) + if (in_nparams) { + ch = get_menu_cmd_key(*params[0]); + } else if (!perminv_scrolling) ch = key_event_to_char((XKeyEvent *) event); else ch = (char) fake_perminv_event.type;