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
parent
commit
a31ff27fdf
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 1
      native/Avalonia.Native/src/OSX/AvnView.h
  2. 5
      native/Avalonia.Native/src/OSX/AvnView.mm
  3. 5
      native/Avalonia.Native/src/OSX/AvnWindow.mm

1
native/Avalonia.Native/src/OSX/AvnView.h

@ -18,6 +18,7 @@
-(NSEvent* _Nonnull) lastMouseDownEvent;
-(AvnPoint) translateLocalPoint:(AvnPoint)pt;
-(void) onClosed;
-(void) setModifiers:(NSEventModifierFlags)modifierFlags;
-(AvnPlatformResizeReason) getResizeReason;
-(void) setResizeReason:(AvnPlatformResizeReason)reason;

5
native/Avalonia.Native/src/OSX/AvnView.mm

@ -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]];

5
native/Avalonia.Native/src/OSX/AvnWindow.mm

@ -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(), ^{

Loading…
Cancel
Save