summaryrefslogtreecommitdiff
path: root/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/xcalibrate-new-input-world-order.patch
diff options
context:
space:
mode:
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.patch159
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;
- }