diff options
| author | bt <bt@rctt.net> | 2026-02-20 16:04:44 +0100 |
|---|---|---|
| committer | bt <bt@rctt.net> | 2026-02-24 22:55:48 +0100 |
| commit | e14493abb20ab0c808f109bb56aaf141ad08d178 (patch) | |
| tree | fbfed0aae4d4cca733a2ecbcb7fa92c2a35cfeb2 /src/cmd/devdraw/x11-screen.c | |
| parent | cb7001c8d27f22f7229be302f53012bb1db52418 (diff) | |
| download | plan9port-patch.tar.gz plan9port-patch.zip | |
Custom shortcuts and other minor changespatch
Diffstat (limited to 'src/cmd/devdraw/x11-screen.c')
| -rw-r--r-- | src/cmd/devdraw/x11-screen.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/cmd/devdraw/x11-screen.c b/src/cmd/devdraw/x11-screen.c index 7fa86ddf..8475690b 100644 --- a/src/cmd/devdraw/x11-screen.c +++ b/src/cmd/devdraw/x11-screen.c @@ -12,6 +12,7 @@ #include <thread.h> #include "x11-memdraw.h" #include "devdraw.h" +#include "keyboard-extras.h" #undef time @@ -1277,12 +1278,32 @@ _xtoplan9kbd(XEvent *e) if(k == XK_hyphen) k = XK_minus; /* Do control mapping ourselves if translator doesn't */ - if(e->xkey.state&ControlMask) + if(e->xkey.state&ControlMask) { k &= 0x9f; + if (k == '\n') + k = Kcret; + } if(k == NoSymbol) { return -1; } + /* Mod4 + key */ + if(e->xkey.state&Mod4Mask) + k += Kmod4; + + /* Shift modified bindings */ + if(e->xkey.state&ShiftMask) { + /* Ctrl + Shift + Key, Shift + Left/Right/Delete */ + if(k == Kleft + || k == Kright + || k == Kdel + || k == Kup + || k == Kdown + || k == Kcret + || e->xkey.state&ControlMask) + k += Ksh; + } + return k+0; } |
