Browse Source
Fixes stuck modifier keys on focus lost on macOS (#16788)
Co-authored-by: Steven Kirk <grokys@users.noreply.github.com>
pull/17021/head
Julien Lebosquain
2 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with
10 additions and
1 deletions
-
native/Avalonia.Native/src/OSX/AvnView.h
-
native/Avalonia.Native/src/OSX/AvnView.mm
-
native/Avalonia.Native/src/OSX/AvnWindow.mm
|
|
|
@ -18,6 +18,7 @@ |
|
|
|
-(NSEvent* _Nonnull) lastMouseDownEvent; |
|
|
|
-(AvnPoint) translateLocalPoint:(AvnPoint)pt; |
|
|
|
-(void) onClosed; |
|
|
|
-(void) setModifiers:(NSEventModifierFlags)modifierFlags; |
|
|
|
|
|
|
|
-(AvnPlatformResizeReason) getResizeReason; |
|
|
|
-(void) setResizeReason:(AvnPlatformResizeReason)reason; |
|
|
|
|
|
|
|
@ -480,6 +480,11 @@ |
|
|
|
_parent->TopLevelEvents->RawKeyEvent(type, timestamp, modifiers, key, physicalKey, keySymbolUtf8); |
|
|
|
} |
|
|
|
|
|
|
|
- (void)setModifiers:(NSEventModifierFlags)modifierFlags |
|
|
|
{ |
|
|
|
_modifierState = [self getModifiers:modifierFlags]; |
|
|
|
} |
|
|
|
|
|
|
|
- (void)flagsChanged:(NSEvent *)event |
|
|
|
{ |
|
|
|
auto newModifierState = [self getModifiers:[event modifierFlags]]; |
|
|
|
|
|
|
|
@ -298,7 +298,10 @@ |
|
|
|
{ |
|
|
|
if (_parent == nullptr) |
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
if (_parent->View != nullptr) |
|
|
|
[_parent->View setModifiers:NSEvent.modifierFlags]; |
|
|
|
|
|
|
|
_parent->BringToFront(); |
|
|
|
|
|
|
|
dispatch_async(dispatch_get_main_queue(), ^{ |
|
|
|
|