summaryrefslogtreecommitdiff
path: root/src/input.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/input.c')
-rw-r--r--src/input.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/input.c b/src/input.c
index c71d58c..7d27a77 100644
--- a/src/input.c
+++ b/src/input.c
@@ -47,6 +47,7 @@ x11_mask_to_rp_mask (unsigned int mask)
result |= mask & ControlMask ? RP_CONTROL_MASK:0;
result |= mask & rp_modifier_info.meta_mod_mask ? RP_META_MASK:0;
result |= mask & rp_modifier_info.alt_mod_mask ? RP_ALT_MASK:0;
+ result |= mask & rp_modifier_info.altgr_mod_mask ? RP_ALTGR_MASK:0;
result |= mask & rp_modifier_info.hyper_mod_mask ? RP_HYPER_MASK:0;
result |= mask & rp_modifier_info.super_mod_mask ? RP_SUPER_MASK:0;
@@ -69,6 +70,7 @@ rp_mask_to_x11_mask (unsigned int mask)
result |= mask & RP_CONTROL_MASK ? ControlMask:0;
result |= mask & RP_META_MASK ? rp_modifier_info.meta_mod_mask:0;
result |= mask & RP_ALT_MASK ? rp_modifier_info.alt_mod_mask:0;
+ result |= mask & RP_ALTGR_MASK ? rp_modifier_info.altgr_mod_mask:0;
result |= mask & RP_HYPER_MASK ? rp_modifier_info.hyper_mod_mask:0;
result |= mask & RP_SUPER_MASK ? rp_modifier_info.super_mod_mask:0;
@@ -139,6 +141,7 @@ update_modifier_map (void)
rp_modifier_info.meta_mod_mask = 0;
rp_modifier_info.alt_mod_mask = 0;
+ rp_modifier_info.altgr_mod_mask = 0;
rp_modifier_info.super_mod_mask = 0;
rp_modifier_info.hyper_mod_mask = 0;
rp_modifier_info.num_lock_mask = 0;
@@ -187,6 +190,13 @@ update_modifier_map (void)
rp_modifier_info.alt_mod_mask));
break;
+ case XK_ISO_Level3_Shift:
+ found_alt_or_meta = 1;
+ rp_modifier_info.altgr_mod_mask |= modmasks[row - 3];
+ PRINT_DEBUG (("Found Alt on %d\n",
+ rp_modifier_info.altgr_mod_mask));
+ break;
+
case XK_Super_L:
case XK_Super_R:
if (!found_alt_or_meta)
@@ -377,6 +387,7 @@ cook_keycode (XKeyEvent *ev, KeySym *keysym, unsigned int *mod, char *keysym_nam
*mod = ev->state;
*mod &= (rp_modifier_info.meta_mod_mask
| rp_modifier_info.alt_mod_mask
+ | rp_modifier_info.altgr_mod_mask
| rp_modifier_info.hyper_mod_mask
| rp_modifier_info.super_mod_mask
| ControlMask