summaryrefslogtreecommitdiff
path: root/ui.c
diff options
context:
space:
mode:
authorkatalx2026-01-29 03:27:59 -0500
committerkatalx2026-01-29 03:27:59 -0500
commite55b4d12bb3380e4ba381f364dc06c06fb8fab60 (patch)
tree77be55f3801a320ecef1a0b1db1a1b2012656d52 /ui.c
parentc49f2f94c2303091e736f6f5ddec7631f9151af4 (diff)
UiModMask
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;