aboutsummaryrefslogtreecommitdiffhomepage
path: root/cocoa
diff options
context:
space:
mode:
authorNeil Hodgson <nyamatongwe@gmail.com>2023-01-14 10:03:54 +1100
committerNeil Hodgson <nyamatongwe@gmail.com>2023-01-14 10:03:54 +1100
commitb7268373ff61c61f0e904de0aef7e9eab704005b (patch)
treedca02d73be2634cd7b947d64f5601f9fa5153317 /cocoa
parent38b932199b71aeb0f7b28d11c21249bb46cfe8ba (diff)
downloadscintilla-mirror-b7268373ff61c61f0e904de0aef7e9eab704005b.tar.gz
Bug [#2374]. Fix character input bug where dotless 'i' and some other extended
Latin characters could not be entered. The change also stops SCI_ASSIGNCMDKEY from working with these characters.
Diffstat (limited to 'cocoa')
-rw-r--r--cocoa/ScintillaCocoa.mm4
1 files changed, 4 insertions, 0 deletions
diff --git a/cocoa/ScintillaCocoa.mm b/cocoa/ScintillaCocoa.mm
index 0b1693f50..64ea4f874 100644
--- a/cocoa/ScintillaCocoa.mm
+++ b/cocoa/ScintillaCocoa.mm
@@ -2228,6 +2228,10 @@ bool ScintillaCocoa::KeyboardInput(NSEvent *event) {
// Handle each entry individually. Usually we only have one entry anyway.
for (size_t i = 0; i < input.length; i++) {
const UniChar originalKey = [input characterAtIndex: i];
+ // Some Unicode extended Latin characters overlap the Keys enumeration so treat them
+ // only as and not as command keys.
+ if (originalKey >= static_cast<UniChar>(Keys::Down) && originalKey <= static_cast<UniChar>(Keys::Menu))
+ continue;
NSEventModifierFlags modifierFlags = event.modifierFlags;
Keys key = KeyTranslate(originalKey, modifierFlags);