Unified · Split
| @@ -173,6 +173,7 @@ keyboard_leave (void *data, struct wl_keyboard *keyboard, uint32_t serial, struc · 172 unmodified lines | ||
| 173 | 173 | kbdkey(Kshift, 0); |
| 174 | 174 | kbdkey(Kctl, 0); |
| 175 | 175 | kbdkey(Kalt, 0); |
| 176 | + kbdkey(Kmod4, 0); | |
| 176 | 177 | qlock(&repeatstate.lk); |
| 177 | 178 | repeatstate.active = 0; |
| 178 | 179 | repeatstate.key = 0; |
| @@ -221,6 +222,10 @@ keyboard_key(void *data, struct wl_keyboard *keyboard, uint32_t serial, uint32_t · 42 unmodified lines | ||
| 221 | 222 | case XKB_KEY_Shift_R: |
| 222 | 223 | utf32 = Kshift; |
| 223 | 224 | break; |
| 225 | + case XKB_KEY_Super_L: | |
| 226 | + case XKB_KEY_Super_R: | |
| 227 | + utf32 = Kmod4; | |
| 228 | + break; | |
| 224 | 229 | case XKB_KEY_End: |
| 225 | 230 | utf32 = Kend; |
| 226 | 231 | break; |
| @@ -237,7 +242,7 @@ keyboard_key(void *data, struct wl_keyboard *keyboard, uint32_t serial, uint32_t · 10 unmodified lines | ||
| 237 | 242 | if(utf32 == 0) |
| 238 | 243 | return; |
| 239 | 244 | |
| 240 | − repeat = state && utf32 != Kctl && utf32 != Kshift && utf32 != Kalt; | |
| 245 | + repeat = state && utf32 != Kctl && utf32 != Kshift && utf32 != Kalt && utf32 != Kmod4; | |
| 241 | 246 | if(xkb_state_mod_name_is_active(wl->xkb_state, XKB_MOD_NAME_CTRL, XKB_STATE_MODS_EFFECTIVE) > 0) |
| 242 | 247 | if(utf32 >= 'a' && utf32 <= 'z') |
| 243 | 248 | utf32 -= ('a' - 1); |