Skip to content

Commit f26ec2e

Browse files
jbgstuartmorgan
authored andcommitted
[macOS] Add modifier state to raw key events (#239)
1 parent 1d90f97 commit f26ec2e

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

library/macos/FLEViewController.m

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@
3333

3434
static const int kDefaultWindowFramebuffer = 0;
3535

36+
// Android KeyEvent constants from https://developer.android.com/reference/android/view/KeyEvent
37+
static const int kAndroidMetaStateShift = 1 << 0;
38+
static const int kAndroidMetaStateAlt = 1 << 1;
39+
static const int kAndroidMetaStateCtrl = 1 << 12;
40+
static const int kAndroidMetaStateMeta = 1 << 16;
41+
3642
#pragma mark - Private interface declaration.
3743

3844
/**
@@ -376,6 +382,12 @@ - (void)dispatchKeyEvent:(NSEvent *)event ofType:(NSString *)type {
376382
@"keymap" : @"android",
377383
@"type" : type,
378384
@"keyCode" : @(event.keyCode),
385+
@"metaState" : @(
386+
((event.modifierFlags & NSEventModifierFlagShift) ? kAndroidMetaStateShift : 0) |
387+
((event.modifierFlags & NSEventModifierFlagOption) ? kAndroidMetaStateAlt : 0) |
388+
((event.modifierFlags & NSEventModifierFlagControl) ? kAndroidMetaStateCtrl : 0) |
389+
((event.modifierFlags & NSEventModifierFlagCommand) ? kAndroidMetaStateMeta : 0)
390+
)
379391
}];
380392
}
381393

0 commit comments

Comments
 (0)