From 708032118904d36953ce1f0140a2d4d65e7ea2db Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Tue, 27 Nov 2007 20:47:28 +0000 Subject: 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. --- .../xkbd-0.8.15/add-default-common-slides.patch | 44 ++++++++++++++++++++++ packages/xkbd/xkbd_0.8.15.bb | 3 +- 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 packages/xkbd/xkbd-0.8.15/add-default-common-slides.patch 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; diff --git a/packages/xkbd/xkbd_0.8.15.bb b/packages/xkbd/xkbd_0.8.15.bb index 2d070fd7ad..f27189f597 100644 --- a/packages/xkbd/xkbd_0.8.15.bb +++ b/packages/xkbd/xkbd_0.8.15.bb @@ -2,9 +2,10 @@ SRC_URI = "http://handhelds.org/~mallum/xkbd/xkbd-${PV}-CVS.tar.gz \ file://libtool-lossage.patch;patch=1;pnum=1 \ file://fix-equalsign.patch;patch=1 \ file://fix-circumkey.patch;patch=1 \ + file://add-default-common-slides.patch;patch=1 \ file://xkbd.png" LICENSE = "GPL" -PR = "r2" +PR = "r3" SECTION = "x11" DEPENDS = "libxpm libxtst libxft" -- cgit v1.2.3