summaryrefslogtreecommitdiff
path: root/ui.c
diff options
context:
space:
mode:
Diffstat (limited to 'ui.c')
-rw-r--r--ui.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/ui.c b/ui.c
index 32f16a8..5b20e65 100644
--- a/ui.c
+++ b/ui.c
@@ -132,6 +132,16 @@ xksym_to_uik(KeySym sym)
}
}
+UiModMask
+xkstate_to_uim(unsigned state)
+{
+ UiModMask m = 0;
+ if (state & Mod1Mask) m |= UIM_ALT;
+ if (state & ShiftMask) m |= UIM_SHIFT;
+ if (state & ControlMask) m |= UIM_CTRL;
+ return m;
+}
+
/* TODO: allow selecting options with mouse */
int
@@ -146,6 +156,7 @@ loop:
e->type = UI_KEY_DOWN;
e->key.strn = XLookupString(&ev.xkey, e->key.str, 10, &sym, 0);
e->key.key = xksym_to_uik(sym);
+ e->key.mod = xkstate_to_uim(ev.xkey.state);
return 1;
case KeyRelease:
e->type = UI_KEY_UP;