[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
emacs-27 ee6c702: Fix error with fn key in NS port (bug#44533)
From: |
Alan Third |
Subject: |
emacs-27 ee6c702: Fix error with fn key in NS port (bug#44533) |
Date: |
Mon, 14 Dec 2020 15:37:51 -0500 (EST) |
branch: emacs-27
commit ee6c702e1895d88ee7e6f57bc6778694239ead76
Author: Alan Third <alan@idiocy.org>
Commit: Alan Third <alan@idiocy.org>
Fix error with fn key in NS port (bug#44533)
* src/nsterm.m ([EmacsView keyDown:]): Move the correction for fn key
handling to before the modifiers are calculated.
(cherry picked from commit 7970610d48701a949ce443c94c71eac47d044197)
---
src/nsterm.m | 19 ++++++++-----------
1 file changed, 8 insertions(+), 11 deletions(-)
diff --git a/src/nsterm.m b/src/nsterm.m
index 4defeee..af06968 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -6350,6 +6350,14 @@ not_in_argv (NSString *arg)
code = 0xFF08; /* backspace */
else
code = fnKeysym;
+
+ /* Function keys (such as the F-keys, arrow keys, etc.) set
+ modifiers as though the fn key has been pressed when it
+ hasn't. Also some combinations of fn and a function key
+ return a different key than was pressed (e.g. fn-<left>
+ gives <home>). We need to unset the fn key flag in these
+ cases. */
+ flags &= ~NS_FUNCTION_KEY_MASK;
}
/* The ⌘ and ⌥ modifiers can be either shift-like (for alternate
@@ -6371,17 +6379,6 @@ not_in_argv (NSString *arg)
Lisp_Object kind = fnKeysym ? QCfunction : QCordinary;
emacs_event->modifiers = EV_MODIFIERS2 (flags, kind);
- /* Function keys (such as the F-keys, arrow keys, etc.) set
- modifiers as though the fn key has been pressed when it
- hasn't. Also some combinations of fn and a function key
- return a different key than was pressed (e.g. fn-<left> gives
- <home>). We need to unset the fn modifier in these cases.
- FIXME: Can we avoid setting it in the first place? */
- if (fnKeysym && (flags & NS_FUNCTION_KEY_MASK))
- emacs_event->modifiers
- ^= parse_solitary_modifier (mod_of_kind (ns_function_modifier,
- QCfunction));
-
if (NS_KEYLOG)
fprintf (stderr, "keyDown: code =%x\tfnKey =%x\tflags = %x\tmods =
%x\n",
code, fnKeysym, flags, emacs_event->modifiers);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- emacs-27 ee6c702: Fix error with fn key in NS port (bug#44533),
Alan Third <=