File tree 1 file changed +12
-4
lines changed
shell/platform/darwin/macos/framework/Source
1 file changed +12
-4
lines changed Original file line number Diff line number Diff line change 16
16
17
17
static const int kDefaultWindowFramebuffer = 0 ;
18
18
19
+ // Android KeyEvent constants from https://developer.android.com/reference/android/view/KeyEvent
20
+ static const int kAndroidMetaStateShift = 1 << 0 ;
21
+ static const int kAndroidMetaStateAlt = 1 << 1 ;
22
+ static const int kAndroidMetaStateCtrl = 1 << 12 ;
23
+ static const int kAndroidMetaStateMeta = 1 << 16 ;
24
+
19
25
#pragma mark - Private interface declaration.
20
26
21
27
/* *
@@ -470,12 +476,14 @@ - (void)dispatchMouseEvent:(NSEvent*)event phase:(FlutterPointerPhase)phase {
470
476
471
477
- (void )dispatchKeyEvent : (NSEvent *)event ofType : (NSString *)type {
472
478
[_keyEventChannel sendMessage: @{
473
- @" keymap" : @" macos " ,
479
+ @" keymap" : @" android " ,
474
480
@" type" : type,
475
481
@" keyCode" : @(event.keyCode ),
476
- @" modifiers" : @(event.modifierFlags ),
477
- @" characters" : event.characters ,
478
- @" charactersIgnoringModifiers" : event.charactersIgnoringModifiers ,
482
+ @" metaState" :
483
+ @(((event.modifierFlags & NSEventModifierFlagShift) ? kAndroidMetaStateShift : 0 ) |
484
+ ((event.modifierFlags & NSEventModifierFlagOption) ? kAndroidMetaStateAlt : 0 ) |
485
+ ((event.modifierFlags & NSEventModifierFlagControl) ? kAndroidMetaStateCtrl : 0 ) |
486
+ ((event.modifierFlags & NSEventModifierFlagCommand) ? kAndroidMetaStateMeta : 0 ))
479
487
}];
480
488
}
481
489
You can’t perform that action at this time.
0 commit comments