summaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/main.c b/main.c
index 41ae8b2..04e155a 100644
--- a/main.c
+++ b/main.c
@@ -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) {