From: David Lawrence Ramsey Date: Thu, 26 Aug 2004 01:43:16 +0000 (+0000) Subject: in get_mouseinput(), make clicking on meta shortcuts work properly X-Git-Tag: v1.3.5~207 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=fe0d366ce2976a596ca128885407cb6201484762;p=nano.git in get_mouseinput(), make clicking on meta shortcuts work properly again, and properly handle the case of whereis_list's being longer than MAIN_VISIBLE as bottombars() does git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1913 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- 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;