From 670ec0dfe7b0449c6305e601a34fca6bbebaf58b Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Fri, 17 May 2019 22:27:06 -0700 Subject: NativeAppMacOS: enabled shift/ctrl/alt press handling --- .../Apple/Source/Classes/OSX/ViewController.mm | 20 ++++++++++++++++++++ Common/NativeApp/include/MacOS/MacOSAppBase.h | 1 + 2 files changed, 21 insertions(+) (limited to 'Common/NativeApp') diff --git a/Common/NativeApp/Apple/Source/Classes/OSX/ViewController.mm b/Common/NativeApp/Apple/Source/Classes/OSX/ViewController.mm index 0df734b..6af9c4c 100644 --- a/Common/NativeApp/Apple/Source/Classes/OSX/ViewController.mm +++ b/Common/NativeApp/Apple/Source/Classes/OSX/ViewController.mm @@ -136,6 +136,26 @@ [super keyUp:theEvent]; } +// Informs the receiver that the user has pressed or released a +// modifier key (Shift, Control, and so on) +- (void)flagsChanged:(NSEvent *)event +{ + auto modifierFlags = [event modifierFlags]; + { + auto* view = (ViewBase*)self.view; + auto* theApp = [view lockApp]; + if(theApp) + { + theApp->OnFlagsChanged(modifierFlags & NSEventModifierFlagShift, + modifierFlags & NSEventModifierFlagControl, + modifierFlags & NSEventModifierFlagOption); + } + [view unlockApp]; + } + + [super flagsChanged:event]; +} + - (BOOL)acceptsFirstResponder { return YES; } diff --git a/Common/NativeApp/include/MacOS/MacOSAppBase.h b/Common/NativeApp/include/MacOS/MacOSAppBase.h index 2922ac9..a242b8e 100644 --- a/Common/NativeApp/include/MacOS/MacOSAppBase.h +++ b/Common/NativeApp/include/MacOS/MacOSAppBase.h @@ -40,6 +40,7 @@ public: virtual void OnMouseMove(int x, int y){} virtual void OnKeyPressed(int key){} virtual void OnKeyReleased(int key){} + virtual void OnFlagsChanged(bool ShiftPressed, bool ControlPressed, bool AltPressed){} protected: Timer timer; -- cgit v1.2.3