diff --git a/Frameworks/ns/src/ns.h b/Frameworks/ns/src/ns.h index 3f6c280e..57ea584a 100644 --- a/Frameworks/ns/src/ns.h +++ b/Frameworks/ns/src/ns.h @@ -7,7 +7,7 @@ PUBLIC std::string to_s (NSString* aString); PUBLIC std::string to_s (NSData* aString); -PUBLIC std::string to_s (NSEvent* anEvent); +PUBLIC std::string to_s (NSEvent* anEvent, bool preserveNumPadFlag = false); namespace ns { diff --git a/Frameworks/ns/src/ns.mm b/Frameworks/ns/src/ns.mm index 0da3a937..677a46d9 100644 --- a/Frameworks/ns/src/ns.mm +++ b/Frameworks/ns/src/ns.mm @@ -66,7 +66,7 @@ static bool is_ascii (std::string const& str) end if */ -std::string to_s (NSEvent* anEvent) +std::string to_s (NSEvent* anEvent, bool preserveNumPadFlag) { CGEventRef cgEvent = [anEvent CGEvent]; CGKeyCode key = (CGKeyCode)[anEvent keyCode]; @@ -81,7 +81,7 @@ std::string to_s (NSEvent* anEvent) if(flags & kCGEventFlagMaskNumericPad) { static std::string const numPadKeys = "0123456789=/*-+.,"; - if(numPadKeys.find(keyStringNoFlags) != std::string::npos) + if(preserveNumPadFlag && numPadKeys.find(keyStringNoFlags) != std::string::npos) newFlags |= kCGEventFlagMaskNumericPad; flags &= ~kCGEventFlagMaskControl; }