From 5c7ed5f4cdd82bfd0829c11c6f3779db2bd704ab Mon Sep 17 00:00:00 2001 From: Joerg Seitter Date: Fri, 8 Jan 2010 10:44:54 +0100 Subject: added xf86-input-evtouch package Support for touchscreens with xf86 Signed-off-by: Joerg Seitter --- package/xf86-input-evtouch/patches/patch-evtouch_c | 174 +++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 package/xf86-input-evtouch/patches/patch-evtouch_c (limited to 'package/xf86-input-evtouch/patches') diff --git a/package/xf86-input-evtouch/patches/patch-evtouch_c b/package/xf86-input-evtouch/patches/patch-evtouch_c new file mode 100644 index 000000000..a60a08453 --- /dev/null +++ b/package/xf86-input-evtouch/patches/patch-evtouch_c @@ -0,0 +1,174 @@ +fixed compile for xorg 1.7.1 +--- xf86-input-evtouch-0.8.8.orig/evtouch.c 2008-11-11 09:47:55.000000000 +0100 ++++ xf86-input-evtouch-0.8.8/evtouch.c 2010-01-06 16:11:16.000000000 +0100 +@@ -30,10 +30,10 @@ + + #define _evdev_touch_C_ + +-#include +-#if XF86_VERSION_CURRENT >= XF86_VERSION_NUMERIC(3,9,0,0,0) +-#define XFREE86_V4 +-#endif ++//#include ++//#if XF86_VERSION_CURRENT >= XF86_VERSION_NUMERIC(3,9,0,0,0) ++//#define XFREE86_V4 ++//#endif + + /***************************************************************************** + * Standard Headers +@@ -88,6 +88,11 @@ + + #include + ++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 3 ++#include ++#include ++#endif ++ + /***************************************************************************** + * Local Headers + ****************************************************************************/ +@@ -132,14 +137,14 @@ InputDriverRec EVTOUCH = { + 0 + }; + +-#ifdef XFree86LOADER ++//#ifdef XFree86LOADER + static XF86ModuleVersionInfo VersionRec = + { + "evtouch", + "Kenan Esau", + MODINFOSTRING1, + MODINFOSTRING2, +- XF86_VERSION_CURRENT, ++ XORG_VERSION_CURRENT, + 0, 8, 8, + ABI_CLASS_XINPUT, + ABI_XINPUT_VERSION, +@@ -167,9 +172,9 @@ Unplug(pointer p) + } + + +-XF86ModuleData evtouchModuleData = {&VersionRec, Plug, Unplug }; ++_X_EXPORT XF86ModuleData evtouchModuleData = {&VersionRec, Plug, Unplug }; + +-#endif /* XFree86LOADER */ ++//#endif /* XFree86LOADER */ + + + static const char *default_options[] = +@@ -581,6 +586,32 @@ DeviceOff (DeviceIntPtr dev) + } + + ++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 ++static void xf86WcmInitButtonLabels(Atom *labels, int nlabels) ++{ ++ memset(labels, 0, nlabels * sizeof(Atom)); ++ switch(nlabels) ++ { ++ default: ++ case 7: ++ labels[6] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_RIGHT); ++ case 6: ++ labels[5] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_LEFT); ++ case 5: ++ labels[4] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_DOWN); ++ case 4: ++ labels[3] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_UP); ++ case 3: ++ labels[2] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_RIGHT); ++ case 2: ++ labels[1] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_MIDDLE); ++ case 1: ++ labels[0] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_LEFT); ++ break; ++ } ++} ++#endif ++ + + + static Bool +@@ -591,12 +622,21 @@ DeviceInit (DeviceIntPtr dev) + EVTouchPrivatePtr priv = (EVTouchPrivatePtr) (local->private); + unsigned char map[EV_MAX_BUTTONS]; + int i; ++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 ++ Atom *axis_labels, *btn_labels; ++#endif + + for (i = 0; i < EV_MAX_BUTTONS; i++) + map[i] = i; + + priv->btn_count = EV_MAX_BUTTONS; + ++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 ++ axis_labels = xcalloc(2, sizeof(Atom)); ++ btn_labels = xcalloc(EV_MAX_BUTTONS, sizeof(Atom)); ++ xf86WcmInitButtonLabels(btn_labels, EV_MAX_BUTTONS); ++#endif ++ + /* + * these have to be here instead of in the SetupProc, because when the + * SetupProc is run at server startup, screenInfo is not setup yet +@@ -629,8 +669,18 @@ DeviceInit (DeviceIntPtr dev) + /* + * Device reports button press for 5 buttons. + */ +- if (InitButtonClassDeviceStruct (dev, EV_MAX_BUTTONS, map) == FALSE) ++ if (InitButtonClassDeviceStruct (dev, EV_MAX_BUTTONS, ++ ++ #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 ++ btn_labels, ++ #endif ++ map) == FALSE) + { ++ ++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 ++ xfree(btn_labels); ++#endif ++ + ErrorF("Unable to allocate EVTouch touchscreen ButtonClassDeviceStruct\n"); + return BadAlloc; + } +@@ -653,7 +703,12 @@ DeviceInit (DeviceIntPtr dev) + * Device reports motions on 2 axes in absolute coordinates. + * Axes min and max values are reported in raw coordinates. + */ +- if (InitValuatorClassDeviceStruct(dev, 2, xf86GetMotionEvents, ++ if (InitValuatorClassDeviceStruct(dev, 2, ++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 ++ axis_labels, ++#endif ++ ++// xf86GetMotionEvents, + local->history_size, Absolute) == FALSE) + { + ErrorF ("Unable to allocate EVTouch touchscreen ValuatorClassDeviceStruct\n"); +@@ -672,7 +727,24 @@ DeviceInit (DeviceIntPtr dev) + EV_AXIS_MAX_RES /* max_res */ ); + xf86InitValuatorDefaults(dev, 1); + #else +- xf86InitValuatorAxisStruct(dev, 0, priv->min_x, priv->max_x, ++ xf86InitValuatorAxisStruct(dev, 0, ++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 ++ XIGetKnownProperty(AXIS_LABEL_PROP_ABS_X), ++#endif ++ 0, priv->screen_width, ++ 1024, ++ EV_AXIS_MIN_RES /* min_res */ , ++ EV_AXIS_MAX_RES /* max_res */ ); ++ xf86InitValuatorDefaults(dev, 0); ++ ++ xf86InitValuatorAxisStruct(dev, 1, ++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 ++ XIGetKnownProperty(AXIS_LABEL_PROP_ABS_Y), ++#endif ++ 0, priv->screen_width, ++ 1024, ++ EV_AXIS_MIN_RES /* min_res */ , ++ EV_AXIS_MAX_RES /* max_res */ ); + xf86InitValuatorDefaults(dev, 1); + #endif + -- cgit v1.2.3