diff options
Diffstat (limited to 'meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/xcalibrate-new-input-world-order.patch')
-rw-r--r-- | meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/xcalibrate-new-input-world-order.patch | 159 |
1 files changed, 0 insertions, 159 deletions
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/xcalibrate-new-input-world-order.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/xcalibrate-new-input-world-order.patch deleted file mode 100644 index 2cc9e60d8..000000000 --- a/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/xcalibrate-new-input-world-order.patch +++ /dev/null @@ -1,159 +0,0 @@ -CRUDE HACK ALERT: this patch adds a new device control (DEVICE_RAWEVENT) -which cannot be exported in the protocol because the xDeviceRaweventCtl -carries a C pointer to the tslib event hook. For lack of a better idea, -I added this to get the event hook pointer from Xext/xcalibrate.c into -tslib.c, where the now-private _raw_event_hook and _raw_event_closure -pointers are manipulated instead of, like before, in the Xcalibrate -extension itself. - -Index: xorg-server-1.4/Xext/xcalibrate.c -=================================================================== ---- xorg-server-1.4.orig/Xext/xcalibrate.c 2007-09-08 13:22:55.000000000 +0200 -+++ xorg-server-1.4/Xext/xcalibrate.c 2007-09-08 16:03:17.000000000 +0200 -@@ -33,14 +33,14 @@ - #include "os.h" - #include "dixstruct.h" - #include "extnsionst.h" -+#include "inputstr.h" /* for inputInfo */ - #include "swaprep.h" - -+#include <X11/extensions/XI.h> /* for XI_TOUCHSCREEN */ -+#include <X11/extensions/XIproto.h> /* for xDeviceCtl */ - #include <X11/extensions/xcalibrateproto.h> - #include <X11/extensions/xcalibratewire.h> - --extern void (*tslib_raw_event_hook)(int x, int y, int pressure, void *closure); --extern void *tslib_raw_event_closure; -- - static CARD8 XCalibrateReqCode; - int XCalibrateEventBase; - int XCalibrateReqBase; -@@ -64,6 +64,31 @@ - WriteEventsToClient (pClient, 1, (xEvent *) &ev); - } - -+#define DEVICE_RAWEVENT 6 -+typedef struct { -+ CARD16 control B16; -+ CARD16 length B16; -+ void *hook; -+} xDeviceRaweventCtl; -+ -+static void -+xcalibrate_set_event_hook (void *hook, ClientPtr client) -+{ -+ DeviceIntPtr devtmp; -+ Atom xiclass; -+ xDeviceRaweventCtl rawevent; -+ -+ rawevent.control = DEVICE_RAWEVENT; -+ rawevent.length = sizeof(rawevent); -+ rawevent.hook = hook; -+ -+ xiclass = MakeAtom(XI_TOUCHSCREEN, strlen(XI_TOUCHSCREEN), 1); -+ -+ for (devtmp = inputInfo.devices; devtmp; devtmp = devtmp->next) -+ if (devtmp->type == xiclass) -+ ChangeDeviceControl(client, devtmp, (xDeviceCtl *) &rawevent); -+} -+ - static int - ProcXCalibrateQueryVersion (ClientPtr client) - { -@@ -124,8 +149,7 @@ - { - /* Start calibrating. */ - xcalibrate_client = client; -- tslib_raw_event_hook = xcalibrate_event_hook; -- tslib_raw_event_closure = client; -+ xcalibrate_set_event_hook(xcalibrate_event_hook, client); - rep.status = GrabSuccess; - } - else -@@ -139,8 +163,7 @@ - { - /* Stop calibrating. */ - xcalibrate_client = NULL; -- tslib_raw_event_hook = NULL; -- tslib_raw_event_closure = NULL; -+ xcalibrate_set_event_hook(NULL, NULL); - rep.status = GrabSuccess; - - /* Cycle input off and on to reload configuration. */ -@@ -277,8 +300,7 @@ - { - /* Stop calibrating. */ - xcalibrate_client = NULL; -- tslib_raw_event_hook = NULL; -- tslib_raw_event_closure = NULL; -+ xcalibrate_set_event_hook(NULL, NULL); - } - } - -Index: xorg-server-1.4/hw/kdrive/linux/tslib.c -=================================================================== ---- xorg-server-1.4.orig/hw/kdrive/linux/tslib.c 2007-09-08 14:46:41.000000000 +0200 -+++ xorg-server-1.4/hw/kdrive/linux/tslib.c 2007-09-08 16:10:57.000000000 +0200 -@@ -56,6 +56,13 @@ - int phys_screen; - }; - -+void -+tslib_set_raw_event_hook(KdPointerInfo *pi, void *hook, void *closure) -+{ -+ struct TslibPrivate *private = pi->driverPrivate; -+ private->raw_event_hook = hook; -+ private->raw_event_closure = closure; -+} - - static void - TsRead (int fd, void *closure) -Index: xorg-server-1.4/hw/kdrive/src/kinput.c -=================================================================== ---- xorg-server-1.4.orig/hw/kdrive/src/kinput.c 2007-09-08 14:45:01.000000000 +0200 -+++ xorg-server-1.4/hw/kdrive/src/kinput.c 2007-09-08 16:09:32.000000000 +0200 -@@ -2389,10 +2389,19 @@ - return BadMatch; - } - -+#define DEVICE_RAWEVENT 6 -+typedef struct { -+ CARD16 control B16; -+ CARD16 length B16; -+ void *hook; -+} xDeviceRaweventCtl; -+ - int - ChangeDeviceControl(register ClientPtr client, DeviceIntPtr pDev, - xDeviceCtl *control) - { -+ KdPointerInfo *pi; -+ - switch (control->control) { - case DEVICE_RESOLUTION: - /* FIXME do something more intelligent here */ -@@ -2406,6 +2415,24 @@ - case DEVICE_ENABLE: - return Success; - -+ case DEVICE_RAWEVENT: -+ if (!pDev) -+ return BadImplementation; -+ -+ for (pi = kdPointers; pi; pi = pi->next) { -+ if (pi->dixdev && pi->dixdev->id == pDev->id) -+ break; -+ } -+ -+ if (!pi || !pi->dixdev || pi->dixdev->id != pDev->id) { -+ ErrorF("[ChangeDeviceControl] Failed to find pointer for device %d!\n", -+ pDev->id); -+ return BadImplementation; -+ } -+ -+ tslib_set_raw_event_hook(pi, ((xDeviceRaweventCtl *)control)->hook, client); -+ return Success; -+ - default: - return BadMatch; - } |