diff options
| -rw-r--r-- | cocoa/ScintillaCocoa.mm | 23 | ||||
| -rw-r--r-- | doc/ScintillaHistory.html | 5 | 
2 files changed, 25 insertions, 3 deletions
| diff --git a/cocoa/ScintillaCocoa.mm b/cocoa/ScintillaCocoa.mm index 9fe70e3a8..200b39df7 100644 --- a/cocoa/ScintillaCocoa.mm +++ b/cocoa/ScintillaCocoa.mm @@ -2081,7 +2081,7 @@ bool ScintillaCocoa::Draw(NSRect rect, CGContextRef gc)  /**   * Helper function to translate OS X key codes to Scintilla key codes.   */ -static inline UniChar KeyTranslate(UniChar unicodeChar) +static inline UniChar KeyTranslate(UniChar unicodeChar, NSEventModifierFlags modifierFlags)  {    switch (unicodeChar)    { @@ -2110,6 +2110,21 @@ static inline UniChar KeyTranslate(UniChar unicodeChar)        return SCK_RETURN;      case 27:        return SCK_ESCAPE; +    case '+': +      if (modifierFlags & NSNumericPadKeyMask) +        return SCK_ADD; +      else +        return unicodeChar; +    case '-': +      if (modifierFlags & NSNumericPadKeyMask) +        return SCK_SUBTRACT; +      else +        return unicodeChar; +    case '/': +      if (modifierFlags & NSNumericPadKeyMask) +        return SCK_DIVIDE; +      else +        return unicodeChar;      case 127:        return SCK_BACK;      case '\t': @@ -2158,11 +2173,13 @@ bool ScintillaCocoa::KeyboardInput(NSEvent* event)    for (size_t i = 0; i < input.length; i++)    {      const UniChar originalKey = [input characterAtIndex: i]; -    UniChar key = KeyTranslate(originalKey); +    NSEventModifierFlags modifierFlags = [event modifierFlags]; +       +    UniChar key = KeyTranslate(originalKey, modifierFlags);      bool consumed = false; // Consumed as command? -    if (KeyDownWithModifiers(key, TranslateModifierFlags([event modifierFlags]), &consumed)) +    if (KeyDownWithModifiers(key, TranslateModifierFlags(modifierFlags), &consumed))        handled = true;      if (consumed)        handled = true; diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html index 080847d8e..dd51f6de4 100644 --- a/doc/ScintillaHistory.html +++ b/doc/ScintillaHistory.html @@ -591,6 +591,11 @@  	<a href="http://sourceforge.net/p/scintilla/bugs/1863/">Bug #1863</a>.  	</li>  	<li> +	On Cocoa, recognize the numeric keypad '+', '-', and '/' keys as +	SCK_ADD, SCK_SUBTRACT, and SCK_DIVIDE. +	<a href="http://sourceforge.net/p/scintilla/bugs/1867/">Bug #1867</a>. +	</li> +	<li>  	On GTK+ 3.21+ fix incorrect font size in auto-completion list.  	<a href="http://sourceforge.net/p/scintilla/bugs/1859/">Bug #1859</a>.  	</li> | 
