Skip to content

Commit 61e748d

Browse files
authored
adds support for fn as a modifier key (#169)
1 parent ebf8343 commit 61e748d

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

src/keypress.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ extern "C"
2020
MOD_META = kCGEventFlagMaskCommand,
2121
MOD_ALT = kCGEventFlagMaskAlternate,
2222
MOD_CONTROL = kCGEventFlagMaskControl,
23-
MOD_SHIFT = kCGEventFlagMaskShift
23+
MOD_SHIFT = kCGEventFlagMaskShift,
24+
MOD_FUNCTION = kCGEventFlagMaskSecondaryFn
2425
} MMKeyFlags;
2526

2627
extern MMKeyFlags flagBuffer;
@@ -32,7 +33,8 @@ extern "C"
3233
MOD_META = Mod4Mask,
3334
MOD_ALT = Mod1Mask,
3435
MOD_CONTROL = ControlMask,
35-
MOD_SHIFT = ShiftMask
36+
MOD_SHIFT = ShiftMask,
37+
MOD_FUNCTION = 0
3638
};
3739

3840
typedef unsigned int MMKeyFlags;
@@ -45,7 +47,8 @@ extern "C"
4547
/* MOD_ALT = 0,
4648
MOD_CONTROL = 0,
4749
MOD_SHIFT = 0, */
48-
MOD_META = MOD_WIN
50+
MOD_META = MOD_WIN,
51+
MOD_FUNCTION = 0
4952
};
5053

5154
typedef unsigned int MMKeyFlags;

src/macos/keypress.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ void toggleKeyCode(MMKeyCode code, const bool down, MMKeyFlags flags) {
6767
if (code == K_SHIFT || code == K_RIGHTSHIFT) {
6868
flags |= MOD_SHIFT;
6969
}
70+
if (code == K_FUNCTION) {
71+
flags |= MOD_FUNCTION;
72+
}
7073

7174
MMKeyFlags activeKeyFlags;
7275
if (down) {

src/main.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,8 @@ int CheckKeyFlags(std::string &flagString, MMKeyFlags *flags) {
361361
*flags = MOD_CONTROL;
362362
} else if (flagString == "shift" || flagString == "right_shift") {
363363
*flags = MOD_SHIFT;
364+
} else if (flagString == "fn") {
365+
*flags = MOD_FUNCTION;
364366
} else if (flagString == "none") {
365367
*flags = MOD_NONE;
366368
} else {

0 commit comments

Comments
 (0)