diff --git a/src/keyboard.c b/src/keyboard.c index 1a624c1..c012cde 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -112,7 +112,8 @@ static void set_mods(struct keyboard *kbd, uint8_t mods) * additional control sequences. */ int guard = ((((kbd->last_pressed_output_code == KEYD_LEFTMETA) && mask == MOD_SUPER) || - ((kbd->last_pressed_output_code == KEYD_LEFTALT) && mask == MOD_ALT)) && + ((kbd->last_pressed_output_code == KEYD_LEFTALT) && mask == MOD_ALT) || + ((kbd->last_pressed_output_code == KEYD_RIGHTALT) && mask == MOD_ALT_GR)) && !kbd->inhibit_modifier_guard && !kbd->config.disable_modifier_guard); diff --git a/t/altgr-modifier-guard.t b/t/altgr-modifier-guard.t new file mode 100644 index 0000000..38f8551 --- /dev/null +++ b/t/altgr-modifier-guard.t @@ -0,0 +1,27 @@ +rightalt down +a down +a up +rightalt up +rightalt down +rightalt up +rightalt down +x down +x up +rightalt up + +rightalt down +control down +rightalt up +control up +a down +a up +rightalt down +control down +rightalt up +control up +rightalt down +rightalt up +rightalt down +x down +x up +rightalt up diff --git a/t/test.conf b/t/test.conf index 2d186aa..b2baa55 100644 --- a/t/test.conf +++ b/t/test.conf @@ -43,6 +43,10 @@ o = overloadt(control, a, 10) \ = 😄 [ = togglem(control, macro(one)) +[altgr] + +a = a + [layout2:layout] a = c