diff options
Diffstat (limited to 'ui.c')
| -rw-r--r-- | ui.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -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; |
