diff --git a/ChangeLog b/ChangeLog index 76b4e371..de692f1f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -23,6 +23,11 @@ CVS code - - New function used as a wrapper for ungetch(). (DLR) get_mouseinput() - Consolidate two if statements to increase efficiency. (DLR) + - Check kbinput against metaval instead of (erroneously) ctrlval + when putting back a meta sequence. (DLR) + - If there are more than MAIN_VISIBLE shortcuts available, only + register clicks on the first MAIN_VISIBLE shortcuts, since + bottombars() only shows that many shortcuts. (DLR) do_yesno() - Don't bother assigning the value of get_mouseinput() to anything. Since allow_shortcuts is FALSE, its return value diff --git a/src/winio.c b/src/winio.c index 02464669..4e155e37 100644 --- a/src/winio.c +++ b/src/winio.c @@ -1287,9 +1287,15 @@ bool get_mouseinput(int *mouse_x, int *mouse_y, bool allow_shortcuts) /* Get the shortcut lists' length. */ if (currshortcut == main_list) currslen = MAIN_VISIBLE; - else + else { currslen = length_of_list(currshortcut); + /* We don't show any more shortcuts than the main list + * does. */ + if (currslen > MAIN_VISIBLE) + currslen = MAIN_VISIBLE; + } + /* Calculate the width of each shortcut in the list (it's the * same for all of them). */ if (currslen < 2) @@ -1319,7 +1325,7 @@ bool get_mouseinput(int *mouse_x, int *mouse_y, bool allow_shortcuts) * has an equivalent control key, meta key sequence, or both. */ if (s->ctrlval != NANO_NO_KEY) unget_kbinput(s->ctrlval, FALSE); - else if (s->ctrlval != NANO_NO_KEY) + else if (s->metaval != NANO_NO_KEY) unget_kbinput(s->metaval, TRUE); return TRUE;