commit f7c68cd1434a3e4878c872934bef9b4940fd8019
parent 1a1b2a0c0fabcc26eabea373da4da46800e3aa36
Author: Chris Allegretta <chrisa@asty.org>
Date: Wed, 5 Mar 2014 04:30:07 +0000
2014-03-04 Chris Allegretta <chrisa@asty.org>
* global.c (first_sc_for) - Return raw keystrokes last, so
they will not be displayed if there are F-key or Meta keys
mapped for an item in the shortcut list.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4642 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Diffstat:
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/ChangeLog b/ChangeLog
@@ -1,3 +1,8 @@
+2014-03-04 Chris Allegretta <chrisa@asty.org>
+ * global.c (first_sc_for) - Return raw keystrokes last, so
+ they will not be displayed if there are F-key or Meta keys
+ mapped for an item in the shortcut list.
+
2014-03-04 Benno Schulenberg <bensberg@justemail.net>
* doc/syntax/nanorc.nanorc - Add keyword 'quiet', sort 'locking',
and concatenate the two separate strings into one.
diff --git a/src/global.c b/src/global.c
@@ -313,6 +313,7 @@ const sc *first_sc_for(int menu, void (*func)(void))
const sc *s;
const sc *fkeysc = NULL;
const sc *metasc = NULL;
+ const sc *rawsc = NULL;
for (s = sclist; s != NULL; s = s->next) {
if ((s->menu & menu) && s->scfunc == func) {
@@ -329,6 +330,10 @@ const sc *first_sc_for(int menu, void (*func)(void))
if (!metasc)
metasc = s;
continue;
+ } else if (s->type == RAWINPUT) {
+ if (!rawsc)
+ rawsc = s;
+ continue;
}
/* Otherwise, it was something else, so use it. */
@@ -339,11 +344,14 @@ const sc *first_sc_for(int menu, void (*func)(void))
/* If we're here, we may have found only function keys or meta
* sequences. If so, use one, with the same priority as in the
* help browser: function keys come first, unless meta sequences are
- * available, in which case meta sequences come first. */
+ * available, in which case meta sequences come first. Last choice
+ * is the raw key. */
if (fkeysc && !metasc)
return fkeysc;
else if (metasc)
return metasc;
+ else if (rawsc)
+ return rawsc;
#ifdef DEBUG
fprintf(stderr, "Whoops, returning null given func %ld in menu %d\n", (long) func, menu);