diff options
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 16 |
1 files changed, 7 insertions, 9 deletions
@@ -566,22 +566,20 @@ end: void on_keypress(XKeyEvent *kev) { int i; - unsigned int sh; + unsigned int sh = 0; KeySym ksym, shksym; - char key; + char dummy, key; bool dirty = false; + XLookupString(kev, &key, 1, &ksym, NULL); + if (kev->state & ShiftMask) { kev->state &= ~ShiftMask; - XLookupString(kev, &key, 1, &shksym, NULL); + XLookupString(kev, &dummy, 1, &shksym, NULL); kev->state |= ShiftMask; - XLookupString(kev, &key, 1, &ksym, NULL); - sh = ksym != shksym ? ShiftMask : 0; - } else { - XLookupString(kev, &key, 1, &ksym, NULL); - sh = 0; + if (ksym != shksym) + sh = ShiftMask; } - if (IsModifierKey(ksym)) return; if (ksym == XK_Escape && MODMASK(kev->state) == 0) { |