diff options
author | Paul Sokolovsky <pmiscml@gmail.com> | 2007-11-27 20:47:28 +0000 |
---|---|---|
committer | Paul Sokolovsky <pmiscml@gmail.com> | 2007-11-27 20:47:28 +0000 |
commit | 708032118904d36953ce1f0140a2d4d65e7ea2db (patch) | |
tree | c93a5e49db9d2a927d4c5dc19e6af0339bf262e6 /packages/xkbd/xkbd-0.8.15 | |
parent | 5b37ae936804e8b3473d2a07819c3c894f26fd98 (diff) |
xkbd 0.8.15: Add default common slides.
* xkbd has supports for "slides", where instead of just click on key,
there's a gesture up, down, left, or right. These can be specified in
keyboard definition, and xkbd has defaults for each 4. But of 4 pristine
defaults, only 1 is useful - up is shift+key. The other are for ctrl, alt,
etc modifiers, which are less useful in real life. Instead, have following
defaults: left - backspace, right - space, down - Enter. This means that
on common xkbd file w/o slide definition, making a right-to-left gesture
anywhere on keyboard will be equivalent of backspace, etc.
Diffstat (limited to 'packages/xkbd/xkbd-0.8.15')
-rw-r--r-- | packages/xkbd/xkbd-0.8.15/add-default-common-slides.patch | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/packages/xkbd/xkbd-0.8.15/add-default-common-slides.patch b/packages/xkbd/xkbd-0.8.15/add-default-common-slides.patch new file mode 100644 index 0000000000..0423ee1eed --- /dev/null +++ b/packages/xkbd/xkbd-0.8.15/add-default-common-slides.patch @@ -0,0 +1,44 @@ +diff -r 6b20ef8fbdee src/kb.c +--- a/src/kb.c Tue Nov 27 21:28:21 2007 +0200 ++++ b/src/kb.c Tue Nov 27 22:27:09 2007 +0200 +@@ -954,6 +954,13 @@ void kb_send_keypress(button *b) + int slide_flag = 0; + + struct keycodeEntry vk_keycodes[10]; ++ ++ static KeySym ksSpace, ksBackSpace, ksReturn; ++ if (!ksSpace) { ++ ksSpace = XStringToKeysym("space"); ++ ksBackSpace = XStringToKeysym("BackSpace"); ++ ksReturn = XStringToKeysym("Return"); ++ } + + if (b->kb->state & KB_STATE_SHIFT || b->kb->state & KB_STATE_CAPS) + { +@@ -981,20 +988,17 @@ void kb_send_keypress(button *b) + ks = b->slide_up_ks; + if (ks == 0) ks = b->shift_ks; + break; +- case down : /* hold ctrl */ ++ case down : + ks = b->slide_down_ks; +- if (ks == 0) slide_flag = KB_STATE_CTRL; ++ if (ks == 0) ks = ksReturn; + break; +- case left : /* hold alt */ ++ case left : + ks = b->slide_left_ks; +- if (ks == 0) +- { +- ks = b->mod_ks; +- slide_flag = KB_STATE_MOD; +- } ++ if (ks == 0) ks = ksBackSpace; + break; +- case right : /* hold alt */ ++ case right : + ks = b->slide_right_ks; ++ if (ks == 0) ks = ksSpace; + break; + case none: + break; |