Hello community,
here is the log from the commit of package xorg-x11-driver-input for openSUSE:Factory
checked in at Mon Mar 2 01:30:50 CET 2009.
--------
--- xorg-x11-driver-input/xorg-x11-driver-input.changes 2009-02-27 12:44:20.000000000 +0100
+++ /mounts/work_src_done/STABLE/xorg-x11-driver-input/xorg-x11-driver-input.changes 2009-02-28 10:33:35.456932504 +0100
@@ -1,0 +2,11 @@
+Fri Feb 27 20:56:29 CET 2009 - sndirsch@suse.de
+
+- xf86-input-synaptics 1.0.99.2
+- evdev 2.1.3
+- fixed build for various drivers
+- xf86-input-synaptics-settings.diff
+ * enables tapping
+ * enables vertical scrolling
+ * fixed typo (vertScrollDelta <--> horizScrollDelta)
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
xf86-input-synaptics-1.0.0.tar.bz2
New:
----
xf86-input-calcomp.diff
xf86-input-citron.diff
xf86-input-digitaledge.diff
xf86-input-dmc.diff
xf86-input-dynapro.diff
xf86-input-evdev-2.1.3.tar.bz2
xf86-input-magellan.diff
xf86-input-magictouch.diff
xf86-input-palmax.diff
xf86-input-spaceorb.diff
xf86-input-summa.diff
xf86-input-synaptics-1.0.99.2.tar.bz2
xf86-input-synaptics-settings.diff
xf86-input-tek4957.diff
xf86-input-ur98.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xorg-x11-driver-input.spec ++++++
--- /var/tmp/diff_new_pack.s11217/_old 2009-03-02 01:30:26.000000000 +0100
+++ /var/tmp/diff_new_pack.s11217/_new 2009-03-02 01:30:26.000000000 +0100
@@ -17,13 +17,14 @@
# norootforbuild
+%define evdev_old 0
Name: xorg-x11-driver-input
#!BuildIgnore: xorg-x11-Mesa xorg-x11-Mesa-devel
BuildRequires: Mesa-devel pkgconfig xorg-x11-proto-devel xorg-x11-server-sdk
Url: http://xorg.freedesktop.org/
Version: 7.4
-Release: 18
+Release: 19
License: X11/MIT
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Group: System/X11/Servers/XF86_4
@@ -60,7 +61,8 @@
Source26: xf86-input-vmmouse-12.6.3.tar.bz2
Source27: xf86-input-void-1.2.0.tar.bz2
Source28: xf86-input-diamondtouch-0.3.0.tar.bz2
-Source29: xf86-input-synaptics-1.0.0.tar.bz2
+Source29: xf86-input-synaptics-1.0.99.2.tar.bz2
+Source30: xf86-input-evdev-2.1.3.tar.bz2
Patch2: xf86-input-jamstudio.diff
Patch3: p_mouse_misc.diff
Patch5: evdev-overflow.diff
@@ -74,6 +76,19 @@
Patch20: xf86-input-evdev-btn-touch.diff
Patch21: xf86-input-evdev-sig11-bug437651.diff
Patch23: wait.diff
+Patch24: xf86-input-synaptics-settings.diff
+Patch25: xf86-input-calcomp.diff
+Patch26: xf86-input-citron.diff
+Patch27: xf86-input-digitaledge.diff
+Patch28: xf86-input-dmc.diff
+Patch29: xf86-input-dynapro.diff
+Patch30: xf86-input-magellan.diff
+Patch31: xf86-input-magictouch.diff
+Patch32: xf86-input-palmax.diff
+Patch33: xf86-input-spaceorb.diff
+Patch34: xf86-input-summa.diff
+Patch35: xf86-input-tek4957.diff
+Patch36: xf86-input-ur98.diff
%description
This package contains X.Org input drivers.
@@ -81,9 +96,14 @@
%prep
-%setup -q -c -a1 -a2 -a3 -a4 -a5 -a6 -a7 -a8 -a9 -a10
+%setup -q -c -a1 -a2 -a3 -a4 -a5 -a6 -a7 -a8 -a10
%setup -q -D -T -a11 -a12 -a13 -a14 -a15 -a16 -a17 -a18 -a19 -a20
%setup -q -D -T -a21 -a22 -a23 -a24 -a25 -a26 -a27 -a28 -a29
+%if %evdev_old
+%setup -q -D -T -a9
+%else
+%setup -q -D -T -a30
+%endif
#for i in $RPM_SOURCE_DIR/*.tar.bz2; do tar xjf $i; done
pushd xf86-input-jamstudio-*
%patch2
@@ -91,6 +111,7 @@
pushd xf86-input-mouse-*/src
%patch3 -p6
popd
+%if %evdev_old
pushd xf86-input-evdev-*
%patch5 -p0
%patch6 -p1
@@ -101,6 +122,7 @@
%patch20 -p1
%patch21 -p1
popd
+%endif
pushd xf86-input-elo2300-*
%patch17 -p1
popd
@@ -109,6 +131,43 @@
popd
pushd xf86-input-synaptics-*
%patch23 -p0
+%patch24 -p0
+popd
+pushd xf86-input-calcomp-*
+%patch25 -p1
+popd
+pushd xf86-input-citron-*
+%patch26 -p1
+popd
+pushd xf86-input-digitaledge-*
+%patch27 -p1
+popd
+pushd xf86-input-dmc-*
+%patch28 -p1
+popd
+pushd xf86-input-dynapro-*
+%patch29 -p1
+popd
+pushd xf86-input-magellan-*
+%patch30 -p1
+popd
+pushd xf86-input-magictouch-*
+%patch31 -p1
+popd
+pushd xf86-input-palmax-*
+%patch32 -p1
+popd
+pushd xf86-input-spaceorb-*
+%patch33 -p1
+popd
+pushd xf86-input-summa-*
+%patch34 -p1
+popd
+pushd xf86-input-tek4957-*
+%patch35 -p1
+popd
+pushd xf86-input-ur98-*
+%patch36 -p1
popd
%build
@@ -147,9 +206,11 @@
%files
%defattr(-,root,root)
+/usr/include/xorg/evdev-properties.h
/usr/include/xorg/joystick-properties.h
/usr/include/xorg/synaptics-properties.h
/usr/include/xorg/synaptics.h
+/usr/%{_lib}/pkgconfig/xorg-evdev.pc
/usr/%{_lib}/pkgconfig/xorg-joystick.pc
/usr/%{_lib}/pkgconfig/xorg-synaptics.pc
/usr/%{_lib}/xorg/modules/input/
@@ -165,6 +226,14 @@
%changelog
* Fri Feb 27 2009 sndirsch@suse.de
+- xf86-input-synaptics 1.0.99.2
+- evdev 2.1.3
+- fixed build for various drivers
+- xf86-input-synaptics-settings.diff
+ * enables tapping
+ * enables vertical scrolling
+ * fixed typo (vertScrollDelta <--> horizScrollDelta)
+* Fri Feb 27 2009 sndirsch@suse.de
- xf86-input-hyperpen 1.3.0
* Thu Feb 26 2009 sndirsch@suse.de
- xf86-input-mouse 1.4.0
++++++ xf86-input-calcomp.diff ++++++
commit c21a961bc71f6c92ce48208e4642a20b09b23149
Author: Peter Hutterer
Date: Mon May 26 22:02:54 2008 +0930
Check for XINPUT ABI 3.
diff --git a/src/xf86Calcomp.c b/src/xf86Calcomp.c
index f834eea..46de9be 100644
--- a/src/xf86Calcomp.c
+++ b/src/xf86Calcomp.c
@@ -132,7 +132,9 @@ static const char *reqSymbols[] = {
"xf86CollectInputOptions",
"xf86ErrorFVerb",
"xf86FindOptionValue",
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
"xf86GetMotionEvents",
+#endif
"xf86GetVerbosity",
"xf86MotionHistoryAllocate",
"xf86NameCmp",
@@ -308,7 +310,10 @@ DeviceInit (DeviceIntPtr dev)
* this example device reports motions on 2 axes in absolute coordinates.
* Device may reports touch pressure on the 3rd axis.
*/
- if (InitValuatorClassDeviceStruct (dev, 3, xf86GetMotionEvents,
+ if (InitValuatorClassDeviceStruct (dev, 3,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
+ xf86GetMotionEvents,
+#endif
local->history_size, Absolute) == FALSE)
{
ErrorF ("Unable to allocate CALCOMP ValuatorClassDeviceStruct\n");
++++++ xf86-input-citron.diff ++++++
commit a59ffb3cdc9d68a0ad21f04831e4255ad0e985d8
Author: Paulo Cesar Pereira de Andrade
Date: Mon Feb 4 01:10:27 2008 -0200
Don't call xf86SoundKbdBell and xf86XInputSetSendCoreEvents
Only call those functions if GET_ABI_MAJOR(ABI_XINPUT_VERSION) == 0.
Signed-off-by: Peter Hutterer
diff --git a/src/citron.c b/src/citron.c
index 42152b5..38e5067 100644
--- a/src/citron.c
+++ b/src/citron.c
@@ -2058,12 +2058,14 @@ SwitchMode (ClientPtr client, DeviceIntPtr dev, int mode)
DBG(6, ErrorF("%s\treporting mode = %s\n", CI_INFO, mode==TS_Raw?"raw":"scaled"));
return (Success);
}
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) == 0
else if ((mode == SendCoreEvents) || (mode == DontSendCoreEvents))
{
xf86XInputSetSendCoreEvents (local, (mode == SendCoreEvents));
DBG(6, ErrorF("%s\tmode = %sSend Core Events\n", CI_INFO, mode==DontSendCoreEvents?"Don\'t ":""));
return (Success);
}
+#endif
#ifdef CIT_MODE_EXT
else if (mode == ClickMode_Enter)
{
@@ -2466,6 +2468,7 @@ cit_Beep(cit_PrivatePtr priv, int press)
if(priv->beep == 0)
return;
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) == 0
/* ring release bell */
if(press == 0)
@@ -2492,6 +2495,7 @@ cit_Beep(cit_PrivatePtr priv, int press)
else
/* ring press bell */
xf86SoundKbdBell(priv->press_vol,priv->press_pitch, priv->press_dur);
+#endif
DBG(7, ErrorF("%scit_Beep called - %s\n", CI_INFO, (press == 0) ? "release" : "press"));
#endif
@@ -2508,6 +2512,7 @@ cit_BeepKey(cit_PrivatePtr priv, int press)
if(priv->beepkey == 0)
return;
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) == 0
/* ring release bell */
if(press <= 0)
@@ -2532,6 +2537,7 @@ cit_BeepKey(cit_PrivatePtr priv, int press)
else
/* ring press bell */
xf86SoundKbdBell(priv->presskey_vol,priv->presskey_pitch, priv->presskey_dur);
+#endif
DBG(7, ErrorF("%scit_BeepKey called - %s\n", CI_INFO, (press == 0) ? "release" : "press"));
#endif
commit 591674bee43061f1169ebeede653fb6d98147724
Author: Peter Hutterer
Date: Mon May 26 22:03:52 2008 +0930
Check for XINPUT ABI 3.
diff --git a/src/citron.c b/src/citron.c
index 38e5067..c7f6c3c 100644
--- a/src/citron.c
+++ b/src/citron.c
@@ -1368,7 +1368,10 @@ DeviceInit (DeviceIntPtr dev)
* screen to fit one meter.
* Device may reports touch pressure on the 3rd axis.
*/
- if (InitValuatorClassDeviceStruct (dev, 2, xf86GetMotionEvents,
+ if (InitValuatorClassDeviceStruct (dev, 2,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
+ xf86GetMotionEvents,
+#endif
local->history_size, Absolute) == FALSE)
{
ErrorF ("%sUnable to allocate Citron touchscreen ValuatorClassDeviceStruct\n", CI_ERROR);
commit 0297c49fd3743e15900a05169ba36e6a0fb438c0
Author: Peter Hutterer
Date: Thu Aug 14 14:55:59 2008 +0930
Fix build, XF86_VERSION_CURRENT doesn't exist anymore.
diff --git a/src/citron.c b/src/citron.c
index c7f6c3c..eb83cf8 100644
--- a/src/citron.c
+++ b/src/citron.c
@@ -305,7 +305,7 @@ static XF86ModuleVersionInfo VersionRec =
MODULEVENDORSTRING, /* vendor specific string */
MODINFOSTRING1,
MODINFOSTRING2,
- XF86_VERSION_CURRENT, /* Current XFree version */
+ XORG_VERSION_CURRENT, /* Current Xorg version */
CITOUCH_VERSION_MAJOR, /* Module-specific major version */
CITOUCH_VERSION_MINOR, /* Module-specific minor version */
CITOUCH_VERSION_PATCH, /* Module-specific patch level */
++++++ xf86-input-digitaledge.diff ++++++
commit 6a0d515b6939798e9beca8237a745ef755304f59
Author: Peter Hutterer
Date: Mon May 26 22:04:22 2008 +0930
Check for XINPUT ABI 3.
diff --git a/src/DigitalEdge.c b/src/DigitalEdge.c
index 5dee41b..639f570 100644
--- a/src/DigitalEdge.c
+++ b/src/DigitalEdge.c
@@ -972,7 +972,9 @@ static int xf86SumProc(DeviceIntPtr pSum, int what)
if (InitValuatorClassDeviceStruct(pSum,
nbaxes,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
xf86GetMotionEvents,
+#endif
local->history_size,
(priv->flags & ABSOLUTE_FLAG) ?
Absolute : Relative) == FALSE) {
commit 68cb14e728a0d5d61f0d2133ed46d432838bc6ed
Author: Peter Hutterer
Date: Thu Aug 14 15:30:00 2008 +0930
Remove XFREE86_V4 cruft.
diff --git a/src/DigitalEdge.c b/src/DigitalEdge.c
index 639f570..45b4d80 100644
--- a/src/DigitalEdge.c
+++ b/src/DigitalEdge.c
@@ -36,13 +36,7 @@
#include "config.h"
#endif
-#include "xf86Version.h"
-
-#if XF86_VERSION_CURRENT >= XF86_VERSION_NUMERIC(3,9,0,0,0)
-#define XFREE86_V4 1
-#endif
-
-/* post 3.9 headers */
+#include "xorgVersion.h"
#include
#include
@@ -150,61 +144,6 @@ typedef struct {
*/
#define DEDGE_SECTION_NAME "DigitalEdge"
-#ifndef XFREE86_V4
-
-#define PORT 1
-#define DEVICENAME 2
-#define THE_MODE 3
-#define CURSOR 4
-#define INCREMENT 5
-#define BORDER 6
-#define DEBUG_LEVEL 7
-#define HISTORY_SIZE 8
-#define ALWAYS_CORE 9
-#define ACTIVE_AREA 10
-#define ACTIVE_OFFSET 11
-#define COMPATIBLE 12
-#define CLICK_THRESHOLD 13
-
-#if !defined(sun) || defined(i386)
-static SymTabRec SumTab[] = {
- {ENDSUBSECTION, "endsubsection"},
- {PORT, "port"},
- {DEVICENAME, "devicename"},
- {THE_MODE, "mode"},
- {CURSOR, "cursor"},
- {INCREMENT, "increment"},
- {BORDER, "border"},
- {DEBUG_LEVEL, "debuglevel"},
- {HISTORY_SIZE, "historysize"},
- {ALWAYS_CORE, "alwayscore"},
- {ACTIVE_AREA, "activearea"},
- {ACTIVE_OFFSET, "activeoffset"},
- {COMPATIBLE, "compatible"},
- {CLICK_THRESHOLD, "clickthreshold"},
- {-1, ""}
-};
-
-#define RELATIVE 1
-#define ABSOLUTE 2
-
-static SymTabRec SumModeTabRec[] = {
- {RELATIVE, "relative"},
- {ABSOLUTE, "absolute"},
- {-1, ""}
-};
-
-#define PUCK 1
-#define STYLUS 2
-
-static SymTabRec SumPointTabRec[] = {
- {PUCK, "puck"},
- {STYLUS, "stylus"},
- {-1, ""}
-};
-
-#endif
-#endif /* Pre 3.9 headers */
/*
** Contants and macro
@@ -246,203 +185,6 @@ static const char *ss_initstr =
** External declarations
*/
-#ifndef XFREE86_V4
-
-#if defined(sun) && !defined(i386)
-#define ENQUEUE suneqEnqueue
-#else
-#define ENQUEUE xf86eqEnqueue
-
-extern void xf86eqEnqueue(
- xEventPtr /*e */
- );
-#endif
-
-extern void miPointerDeltaCursor(
- int /*dx */ ,
- int /*dy */ ,
- unsigned long /*time */
- );
-
-#if !defined(sun) || defined(i386)
-/*
-** xf86SumConfig
-** Reads the DigitalEdge section from the XF86Config file
-*/
-static Bool
-xf86SumConfig(LocalDevicePtr * array, int inx, int max, LexPtr val)
-{
- LocalDevicePtr dev = array[inx];
- DigitalEdgeDevicePtr priv = (DigitalEdgeDevicePtr) (dev->private);
- int token;
- int mtoken;
-
- DBG(1, ErrorF("xf86SumConfig\n"));
-
- while ((token = xf86GetToken(SumTab)) != ENDSUBSECTION) {
- switch (token) {
- case DEVICENAME:
- if (xf86GetToken(NULL) != STRING)
- xf86ConfigError("Option string expected");
- else {
- dev->name = strdup(val->str);
- if (xf86Verbose)
- ErrorF("%s DigitalEdge X device name is %s\n",
- XCONFIG_GIVEN, dev->name);
- }
- break;
-
- case PORT:
- if (xf86GetToken(NULL) != STRING)
- xf86ConfigError("Option string expected");
- else {
- priv->dedgeDevice = strdup(val->str);
- if (xf86Verbose)
- ErrorF("%s DigitalEdge port is %s\n", XCONFIG_GIVEN,
- priv->dedgeDevice);
- }
- break;
-
- case THE_MODE:
- mtoken = xf86GetToken(SumModeTabRec);
- if ((mtoken == EOF) || (mtoken == STRING)
- || (mtoken ==
- NUMBER)) xf86ConfigError("Mode type token expected");
- else {
- switch (mtoken) {
- case ABSOLUTE:
- priv->flags |= ABSOLUTE_FLAG;
- break;
- case RELATIVE:
- priv->flags &= ~ABSOLUTE_FLAG;
- break;
- default:
- xf86ConfigError("Illegal Mode type");
- break;
- }
- }
- break;
-
- case CURSOR:
- mtoken = xf86GetToken(SumPointTabRec);
- if ((mtoken == EOF) || (mtoken == STRING)
- || (mtoken ==
- NUMBER)) xf86ConfigError("Cursor token expected");
- else {
- switch (mtoken) {
- case STYLUS:
- priv->flags |= STYLUS_FLAG;
- break;
- case PUCK:
- priv->flags &= ~STYLUS_FLAG;
- break;
- default:
- xf86ConfigError("Illegal cursor type");
- break;
- }
- }
- break;
-
- case INCREMENT:
- if (xf86GetToken(NULL) != NUMBER)
- xf86ConfigError("Option number expected");
- priv->dedgeInc = val->num;
- if (xf86Verbose)
- ErrorF("%s DigitalEdge increment value is %d\n",
- XCONFIG_GIVEN, priv->dedgeInc);
- break;
-
- case CLICK_THRESHOLD:
- if (xf86GetToken(NULL) != NUMBER)
- xf86ConfigError("Option number expected");
- priv->dedgeClickThresh = val->num;
- if (xf86Verbose)
- ErrorF("%s DigitalEdge click threshold is %d\n",
- XCONFIG_GIVEN, priv->dedgeClickThresh);
- break;
-
- case DEBUG_LEVEL:
- if (xf86GetToken(NULL) != NUMBER)
- xf86ConfigError("Option number expected");
- debug_level = val->num;
- if (xf86Verbose) {
-#if DEBUG
- ErrorF("%s DigitalEdge debug level sets to %d\n",
- XCONFIG_GIVEN, debug_level);
-#else
- ErrorF("%s DigitalEdge debug level not sets to %d because"
- " debugging is not compiled\n", XCONFIG_GIVEN,
- debug_level);
-#endif
- }
- break;
-
- case HISTORY_SIZE:
- if (xf86GetToken(NULL) != NUMBER)
- xf86ConfigError("Option number expected");
- dev->history_size = val->num;
- if (xf86Verbose)
- ErrorF("%s DigitalEdge Motion history size is %d\n",
- XCONFIG_GIVEN, dev->history_size);
- break;
- case COMPATIBLE:
- priv->flags |= COMPATIBLE_FLAG;
- if (xf86Verbose)
- ErrorF
- ("DigitalEdge compatible - will not query firmware ID\n");
- break;
-
- case ALWAYS_CORE:
- xf86AlwaysCore(dev, TRUE);
- if (xf86Verbose)
- ErrorF("%s DigitalEdge device always stays core pointer\n",
- XCONFIG_GIVEN);
- break;
-
- case ACTIVE_AREA:
- if (xf86GetToken(NULL) != NUMBER)
- xf86ConfigError("Option number expected");
- priv->dedgeXSize = val->num;
- if (xf86GetToken(NULL) != NUMBER)
- xf86ConfigError("Option number expected");
- priv->dedgeYSize = val->num;
- ErrorF("%s DigitalEdge active area set to %d.%1dx%d.%1d"
- " inches\n", XCONFIG_GIVEN, priv->dedgeXSize / 10,
- priv->dedgeXSize % 10, priv->dedgeYSize / 10,
- priv->dedgeYSize % 10);
- break;
-
- case ACTIVE_OFFSET:
- if (xf86GetToken(NULL) != NUMBER)
- xf86ConfigError("Option number expected");
- priv->dedgeXOffset = val->num;
- if (xf86GetToken(NULL) != NUMBER)
- xf86ConfigError("Option number expected");
- priv->dedgeYOffset = val->num;
- if (xf86Verbose)
- ErrorF
- ("%s DigitalEdge active area offset set to %d.%1dx%d.%1d"
- " inches\n", XCONFIG_GIVEN, priv->dedgeXOffset / 10,
- priv->dedgeXOffset % 10, priv->dedgeYOffset / 10,
- priv->dedgeYOffset % 10);
- break;
-
- case EOF:
- FatalError("Unexpected EOF (missing EndSubSection)");
- break;
-
- default:
- xf86ConfigError("DigitalEdge subsection keyword expected");
- break;
- }
- }
-
- DBG(1, ErrorF("xf86SumConfig name=%s\n", priv->dedgeDevice));
-
- return Success;
-}
-#endif
-#endif /* pre 3.9 headers */
/*
** xf86SumConvert
@@ -661,29 +403,14 @@ static char *xf86SumWriteAndRead(int fd, char *data, char *buffer, int len,
int cr_term)
{
int err, numread = 0;
-#ifndef XFREE86_V4
- fd_set readfds;
- struct timeval timeout;
-#endif
SYSCALL(err = write(fd, data, strlen(data)));
if (err == -1) {
Error("DigitalEdge write");
return NULL;
}
-#ifndef XFREE86_V4
- FD_ZERO(&readfds);
- FD_SET(fd, &readfds);
-#endif
while (numread < len) {
-#ifndef XFREE86_V4
- timeout.tv_sec = 0;
- timeout.tv_usec = 200000;
-
- SYSCALL(err = select(FD_SETSIZE, &readfds, NULL, NULL, &timeout));
-#else
err = xf86WaitForInput(fd, 1000);
-#endif
if (err == -1) {
Error("DigitalEdge select");
return NULL;
@@ -719,77 +446,19 @@ static char *xf86SumWriteAndRead(int fd, char *data, char *buffer, int len,
*/
static Bool xf86SumOpen(LocalDevicePtr local)
{
-#ifndef XFREE86_V4
- struct termios termios_tty;
- struct timeval timeout;
-#endif
char buffer[256];
int err, idx;
DigitalEdgeDevicePtr priv = (DigitalEdgeDevicePtr) local->private;
DBG(1, ErrorF("opening %s\n", priv->dedgeDevice));
-#ifdef XFREE86_V4
local->fd = xf86OpenSerial(local->options);
-#else
- SYSCALL(local->fd = open(priv->dedgeDevice, O_RDWR | O_NDELAY, 0));
-#endif
if (local->fd == -1) {
Error(priv->dedgeDevice);
return !Success;
}
DBG(2, ErrorF("%s opened as fd %d\n", priv->dedgeDevice, local->fd));
-#ifndef XFREE86_V4
-#ifdef POSIX_TTY
- err = tcgetattr(local->fd, &termios_tty);
- if (err == -1) {
- Error("DigitalEdge tcgetattr");
- return !Success;
- }
- termios_tty.c_iflag = IXOFF;
- termios_tty.c_cflag =
- B9600 | CS8 | CREAD | CLOCAL | HUPCL | PARENB | PARODD;
- termios_tty.c_lflag = 0;
-
-/* I wonder what these all do, anyway */
- termios_tty.c_cc[VINTR] = 0;
- termios_tty.c_cc[VQUIT] = 0;
- termios_tty.c_cc[VERASE] = 0;
-#ifdef VWERASE
- termios_tty.c_cc[VWERASE] = 0;
-#endif
-#ifdef VREPRINT
- termios_tty.c_cc[VREPRINT] = 0;
-#endif
- termios_tty.c_cc[VKILL] = 0;
- termios_tty.c_cc[VEOF] = 0;
- termios_tty.c_cc[VEOL] = 0;
-#ifdef VEOL2
- termios_tty.c_cc[VEOL2] = 0;
-#endif
- termios_tty.c_cc[VSUSP] = 0;
-#ifdef VDISCARD
- termios_tty.c_cc[VDISCARD] = 0;
-#endif
-#ifdef VLNEXT
- termios_tty.c_cc[VLNEXT] = 0;
-#endif
-
- termios_tty.c_cc[VMIN] = 1;
- termios_tty.c_cc[VTIME] = 10;
-
- err = tcsetattr(local->fd, TCSANOW, &termios_tty);
- if (err == -1) {
- Error("DigitalEdge tcsetattr TCSANOW");
- return !Success;
- }
-#else
- Code for someone
- else
- to write to handle OSs without POSIX tty functions
-#endif
-#endif
DBG(1, ErrorF("initializing DigitalEdge tablet\n"));
/* Send reset (NULL) to the tablet */
@@ -800,13 +469,7 @@ static Bool xf86SumOpen(LocalDevicePtr local)
}
/* wait 200 mSecs, just in case */
-#ifndef XFREE86_V4
- timeout.tv_sec = 0;
- timeout.tv_usec = 200000;
- SYSCALL(err = select(0, NULL, NULL, NULL, &timeout));
-#else
err = xf86WaitForInput(-1, 200);
-#endif
if (err == -1) {
Error("DigitalEdge select");
return !Success;
@@ -820,11 +483,7 @@ static Bool xf86SumOpen(LocalDevicePtr local)
return !Success;
}
/* Clear any pending input */
-#ifndef XFREE86_V4
- tcflush(local->fd, TCIFLUSH);
-#else
xf86FlushInput(local->fd);
-#endif
if (priv->dedgeXOffset > 0 && priv->dedgeYOffset > 0) {
if (priv->dedgeXSize * 50 < priv->dedgeMaxX - priv->dedgeXOffset &&
@@ -983,9 +642,6 @@ static int xf86SumProc(DeviceIntPtr pSum, int what)
}
/* allocate the motion history buffer if needed */
xf86MotionHistoryAllocate(local);
-#ifndef XFREE86_V4
- AssignTypeAndName(pSum, local->atom, local->name);
-#endif
/* open the device to gather informations */
xf86SumOpenDevice(pSum);
@@ -998,11 +654,7 @@ static int xf86SumProc(DeviceIntPtr pSum, int what)
return !Success;
}
SYSCALL(write(local->fd, SS_PROMPT, strlen(SS_PROMPT)));
-#ifdef XFREE86_V4
xf86AddEnabledDevice(local);
-#else
- AddEnabledDevice(local->fd);
-#endif
pSum->public.on = TRUE;
break;
@@ -1010,11 +662,7 @@ static int xf86SumProc(DeviceIntPtr pSum, int what)
DBG(1, ErrorF("xf86SumProc pSum=%p what=%s\n", (void *)pSum,
(what == DEVICE_CLOSE) ? "CLOSE" : "OFF"));
if (local->fd >= 0)
-#ifdef XFREE86_V4
xf86RemoveEnabledDevice(local);
-#else
- RemoveEnabledDevice(local->fd);
-#endif
pSum->public.on = FALSE;
break;
@@ -1102,11 +750,7 @@ static int xf86SumSwitchMode(ClientPtr client, DeviceIntPtr dev, int mode)
*/
static LocalDevicePtr xf86SumAllocate(void)
{
-#ifdef XFREE86_V4
LocalDevicePtr local = xf86AllocateInput(dedgeDrv, 0);
-#else
- LocalDevicePtr local = (LocalDevicePtr) xalloc(sizeof(LocalDeviceRec));
-#endif
DigitalEdgeDevicePtr priv = (DigitalEdgeDevicePtr) xalloc(sizeof(DigitalEdgeDeviceRec));
#if defined (sun) && !defined(i386)
char *dev_name = getenv("DEDGESKETCH_DEV");
@@ -1115,11 +759,6 @@ static LocalDevicePtr xf86SumAllocate(void)
local->name = XI_NAME;
local->type_name = "DigitalEdge Tablet";
local->flags = 0; /*XI86_NO_OPEN_ON_INIT; */
-#ifndef XFREE86_V4
-#if !defined(sun) || defined(i386)
- local->device_config = xf86SumConfig;
-#endif
-#endif
local->device_control = xf86SumProc;
local->read_input = xf86SumReadInput;
local->control_proc = xf86SumChangeControl;
@@ -1163,42 +802,6 @@ static LocalDevicePtr xf86SumAllocate(void)
return local;
}
-#ifndef XFREE86_V4
-
-/*
-** DigitalEdge device association
-** Device section name and allocation function.
-*/
-DeviceAssocRec dedgemasketch_assoc = {
- DEDGE_SECTION_NAME, /* config_section_name */
- xf86SumAllocate /* device_allocate */
-};
-
-#ifdef DYNAMIC_MODULE
-/*
-** init_module
-** Entry point for dynamic module.
-*/
-int
-#ifndef DLSYM_BUG
-init_module(unsigned long server_version)
-#else
-init_xf86DigitalEdge(unsigned long server_version)
-#endif
-{
- xf86AddDeviceAssoc(&dedgemasketch_assoc);
-
- if (server_version != XF86_VERSION_CURRENT) {
- ErrorF("Warning: DigitalEdgeKetch module compiled for version%s\n",
- XF86_VERSION);
- return 0;
- } else {
- return 1;
- }
-}
-#endif
-
-#else
/*
* xf86SumUninit --
@@ -1424,6 +1027,5 @@ _X_EXPORT XF86ModuleData digitaledgeModuleData = {
};
#endif /* XFree86LOADER */
-#endif /* XFREE86_V4 */
/* end of xf86DigitalEdge.c */
++++++ xf86-input-dmc.diff ++++++
commit 3c75c2bed83d9a762dc268dfa797826a3b198932
Author: Peter Hutterer
Date: Mon May 26 22:05:06 2008 +0930
Check for XINPUT ABI 3.
diff --git a/src/xf86DMC.c b/src/xf86DMC.c
index e6797d8..daa0f20 100644
--- a/src/xf86DMC.c
+++ b/src/xf86DMC.c
@@ -106,7 +106,9 @@ static const char *reqSymbols[] = {
"xf86CollectInputOptions",
"xf86ErrorFVerb",
"xf86FindOptionValue",
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
"xf86GetMotionEvents",
+#endif
"xf86GetVerbosity",
"xf86MotionHistoryAllocate",
"xf86NameCmp",
@@ -301,7 +303,10 @@ DeviceControl (DeviceIntPtr dev, int mode)
* 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) < 3
+ xf86GetMotionEvents,
+#endif
pInfo->history_size, Absolute) == FALSE)
{
ErrorF ("Unable to allocate DMC ValuatorClassDeviceStruct\n");
++++++ xf86-input-dynapro.diff ++++++
commit e239d630a5b0097a1c364c68eb63a5e75cda2715
Author: Peter Hutterer
Date: Mon May 26 22:05:48 2008 +0930
Check for XINPUT ABI 3.
diff --git a/src/xf86Dyna.c b/src/xf86Dyna.c
index 0a899f0..a728f0f 100644
--- a/src/xf86Dyna.c
+++ b/src/xf86Dyna.c
@@ -98,7 +98,9 @@ static const char *reqSymbols[] = {
"xf86CollectInputOptions",
"xf86ErrorFVerb",
"xf86FindOptionValue",
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
"xf86GetMotionEvents",
+#endif
"xf86GetVerbosity",
"xf86MotionHistoryAllocate",
"xf86NameCmp",
@@ -296,7 +298,10 @@ DeviceControl (DeviceIntPtr dev, int mode)
* 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) < 3
+ xf86GetMotionEvents,
+#endif
pInfo->history_size, Absolute) == FALSE)
{
ErrorF ("Unable to allocate Dynapro ValuatorClassDeviceStruct\n");
++++++ xf86-input-jamstudio.diff ++++++
--- /var/tmp/diff_new_pack.s11217/_old 2009-03-02 01:30:28.000000000 +0100
+++ /var/tmp/diff_new_pack.s11217/_new 2009-03-02 01:30:28.000000000 +0100
@@ -9,3 +9,16 @@
#define JSX_XCOORD 65584
#define JSX_YCOORD 65585
#define JSX_PRESS 852016
+--- ../xf86-input-jamstudio-1.2.0.orig/src/js_x.c 2009-02-28 13:53:06.000000000 +0000
++++ src/js_x.c 2009-02-28 13:53:46.000000000 +0000
+@@ -27,8 +27,8 @@
+ #endif
+
+ #include
+-#include "xf86Version.h"
+-#if XORG_VERSION_CURRENT >= XF86_VERSION_NUMERIC(3,9,0,0,0)
++#include "xorgVersion.h"
++#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(3,9,0,0,0)
+ #define XFREE86_V4 1
+ #endif
+ #include "misc.h"
++++++ xf86-input-magellan.diff ++++++
commit 9684bf570cbd1b4ce75f8f85d70368daf20c66b4
Author: Paulo César Pereira de Andrade
Date: Thu May 1 12:10:37 2008 +0930
Minor compile warning fix. #15153
NEED_XF86_TYPES is defined in xorg/include/xorg/xorg-server.h.
Signed-off-by: Peter Hutterer
X.Org Bug http://bugs.freedesktop.org/show_bug.cgi?id=15153
diff --git a/src/magellan.c b/src/magellan.c
index b27d595..fedb01b 100644
--- a/src/magellan.c
+++ b/src/magellan.c
@@ -45,7 +45,9 @@
#include
#include
-#define NEED_XF86_TYPES
+#ifndef NEED_XF86_TYPES
+#define NEED_XF86_TYPES 1
+#endif
#include
#include
#include
commit ec60776f5adb8215cb5e4d90958b4cb723006363
Author: Peter Hutterer
Date: Mon May 26 22:10:28 2008 +0930
Check for XINPUT ABI 3.
diff --git a/src/magellan.c b/src/magellan.c
index fedb01b..0a84ea7 100644
--- a/src/magellan.c
+++ b/src/magellan.c
@@ -122,7 +122,9 @@ static const char *reqSymbols[] = {
"xf86CollectInputOptions",
"xf86ErrorFVerb",
"xf86FindOptionValue",
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
"xf86GetMotionEvents",
+#endif
"xf86GetVerbosity",
"xf86MotionHistoryAllocate",
"xf86NameCmp",
@@ -366,7 +368,10 @@ DeviceInit (DeviceIntPtr dev)
return !Success;
}
- if (InitValuatorClassDeviceStruct (dev, 6, xf86GetMotionEvents,
+ if (InitValuatorClassDeviceStruct (dev, 6,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
+ xf86GetMotionEvents,
+#endif
pInfo->history_size, Absolute) == FALSE)
{
ErrorF ("Unable to allocate MAGELLAN ValuatorClassDeviceStruct\n");
++++++ xf86-input-magictouch.diff ++++++
commit 2a6abb40d484dcfe9833ece6a42bb47af97da894
Author: Peter Hutterer
Date: Thu Aug 14 15:43:04 2008 +0930
Remove pre-XFREE86_V4 cruft.
diff --git a/src/xf86MagicTouch.c b/src/xf86MagicTouch.c
index 9541318..3056426 100644
--- a/src/xf86MagicTouch.c
+++ b/src/xf86MagicTouch.c
@@ -6,12 +6,8 @@
#include "config.h"
#endif
-#include
-#if XF86_VERSION_CURRENT >= XF86_VERSION_NUMERIC(3,9,0,0,0)
-#define XFREE86_V4
-#endif
+#include
-#ifdef XFREE86_V4
#include
#include
#include
@@ -26,129 +22,8 @@
#include
#endif
-#else /* XFREE86_V4 */
-
-#include
-#include
-#include
-#define NEED_EVENTS
-#include
-#include
-#include "inputstr.h"
-#include "scrnintstr.h"
-
-#include
-#include
-
-#if defined(sun) && !defined(i386)
-#include
-#include
-#include
-#include
-
-#include "extio.h"
-#else /* defined(sun) && !defined(i386) */
-#include "compiler.h"
-
-#include "xf86.h"
-#include "xf86Procs.h"
-#include "xf86_OSlib.h"
-#include "xf86_Config.h"
-#include "xf86Xinput.h"
-#include "xf86Version.h"
-#endif /* defined(sun) && !defined(i386) */
-
-#if !defined(sun) || defined(i386)
-#include "os.h"
-#include "osdep.h"
-#include "exevents.h"
-
-#include "extnsionst.h"
-#include "extinit.h"
-#endif /* !defined(sun) || defined(i386) */
-
-#endif /* XFREE86_V4 */
-
-
-#ifndef XFREE86_V4
-#if !defined(sun) || defined(i386)
-/*
- ***************************************************************************
- *
- * Configuration descriptor.
- *
- ***************************************************************************
- */
-
-#define PORT 1
-#define MAGIC_DEVICE_NAME 2
-#define SCREEN_NO 3
-#define MAXX 4
-#define MAXY 5
-#define MINX 6
-#define MINY 7
-#define DEBUG_LEVEL 8
-#define HISTORY_SIZE 9
-#define LINK_SPEED 10
-#define ALWAYS_CORE 11
-#define SWAP_AXES 12
-#define N_SAMPLE_X 13
-#define N_SAMPLE_Y 14
-
-static SymTabRec MagicTab[] = {
- { ENDSUBSECTION, "endsubsection" },
- { PORT, "port" },
- { MAGIC_DEVICE_NAME, "devicename" },
- { SCREEN_NO, "screenno" },
- { MAXX, "maximumxposition" },
- { MAXY, "maximumyposition" },
- { MINX, "minimumxposition" },
- { MINY, "minimumyposition" },
- { DEBUG_LEVEL, "debuglevel" },
- { HISTORY_SIZE, "historysize" },
- { LINK_SPEED, "linkspeed" },
- { ALWAYS_CORE, "alwayscore" },
- { SWAP_AXES, "swapxy" },
- { N_SAMPLE_X, "numsamplex" },
- { N_SAMPLE_Y, "numsampley" },
- { -1, "" },
-};
-#define LS1200 1
-#define LS2400 2
-#define LS4800 3
-#define LS9600 4
-
-static SymTabRec LinkSpeedTab[] = {
- { LS1200, "b1200" },
- { LS2400, "b2400" },
- { LS4800, "b4800" },
- { LS9600, "b9600" }
-};
-#endif /* !defined(sun) || defined(i386) */
-
-/*
- * This struct connects a line speed with
- * a compatible motion packet delay. The
- * driver will attempt to enforce a correct
- * delay (according to this table) in order to
- * avoid losing data in the touchscreen controller.
- * LinkSpeedValues should be kept in sync with
- * LinkSpeedTab.
- */
-typedef struct {
- int speed;
- int delay;
-} LinkParameterStruct;
-
-static LinkParameterStruct LinkSpeedValues[] = {
- { B1200, 8 },
- { B2400, 4 },
- { B4800, 2 },
- { B9600, 1 }
-};
-#endif /* XFREE86_V4 */
/*
@@ -200,7 +75,6 @@ static int debug_level = 0;
#endif
-#ifdef XFREE86_V4
#undef SYSCALL
#undef read
#undef write
@@ -210,7 +84,6 @@ static int debug_level = 0;
#define read(fd, ptr, num) xf86ReadSerial(fd, ptr, num)
#define write(fd, ptr, num) xf86WriteSerial(fd, ptr, num)
#define close(fd) xf86CloseSerial(fd)
-#endif
@@ -230,9 +103,6 @@ typedef struct _MagicPrivateRec {
int max_x; /* Maximum x */
int min_y; /* Minimum y reported by calibration */
int max_y; /* Maximum y */
-#ifndef XFREE86_V4
- int link_speed; /* Speed of the RS232 link connecting the ts. */
-#endif
int screen_no; /* Screen associated with the device */
int screen_width; /* Width of the associated X screen */
int screen_height; /* Height of the screen */
@@ -248,219 +118,6 @@ typedef struct _MagicPrivateRec {
} MagicPrivateRec, *MagicPrivatePtr;
-#ifndef XFREE86_V4
-#if !defined(sun) || defined(i386)
-/*
- ****************************************************************************
- * xf86MagicConfig --
- * Configure the device driver from configuration data
- ****************************************************************************
- */
-static Bool
-xf86MagicConfig(LocalDevicePtr *array,
- int inx,
- int max,
- LexPtr val)
-{
- LocalDevicePtr local = array[inx];
- MagicPrivatePtr priv = (MagicPrivatePtr)(local->private);
- int token;
-
- while ((token = xf86GetToken(MagicTab)) != ENDSUBSECTION) {
- switch(token) {
-
- case PORT:
- if (xf86GetToken(NULL) != STRING) {
- xf86ConfigError("MagicTouch input port expected");
- }
- priv->input_dev = strdup(val->str);
- if (xf86Verbose) {
- ErrorF("%s MagicTouch input port: %s\n",
- XCONFIG_GIVEN, priv->input_dev);
- }
- break;
-
- case MAGIC_DEVICE_NAME:
- if (xf86GetToken(NULL) != STRING) {
- xf86ConfigError("Magictouch device name expected");
- }
- local->name = strdup(val->str);
- if (xf86Verbose) {
- ErrorF("%s MagicTouch X device name: %s\n",
- XCONFIG_GIVEN, local->name);
- }
- break;
-
- case SCREEN_NO:
- if (xf86GetToken(NULL) != NUMBER) {
- xf86ConfigError("MagicTouch screen number expected");
- }
- priv->screen_no = val->num;
- if (xf86Verbose) {
- ErrorF("%s MagicTouch associated screen: %d\n",
- XCONFIG_GIVEN, priv->screen_no);
- }
- break;
-
- case LINK_SPEED:
- {
- int ltoken = xf86GetToken(LinkSpeedTab);
- if (ltoken == EOF ||
- ltoken == STRING ||
- ltoken == NUMBER) {
- xf86ConfigError("MagicTouch link speed expected");
- }
- priv->link_speed = LinkSpeedValues[ltoken-1].speed;
- if (xf86Verbose) {
- ErrorF("%s MagicTouch link speed: %s bps\n",
- XCONFIG_GIVEN, (LinkSpeedTab[ltoken-1].name)+1);
- }
- }
- break;
-
- case MAXX:
- if (xf86GetToken(NULL) != NUMBER) {
- xf86ConfigError("MagicTouch maximum x position expected");
- }
- priv->max_x = val->num;
- if (xf86Verbose) {
- ErrorF("%s MagicTouch maximum x position: %d\n",
- XCONFIG_GIVEN, priv->max_x);
- }
- break;
-
- case MAXY:
- if (xf86GetToken(NULL) != NUMBER) {
- xf86ConfigError("MagicTouch maximum y position expected");
- }
- priv->max_y = val->num;
- if (xf86Verbose) {
- ErrorF("%s MagicTouch maximum y position: %d\n",
- XCONFIG_GIVEN, priv->max_y);
- }
- break;
-
- case MINX:
- if (xf86GetToken(NULL) != NUMBER) {
- xf86ConfigError("MagicTouch minimum x position expected");
- }
- priv->min_x = val->num;
- if (xf86Verbose) {
- ErrorF("%s MagicTouch minimum x position: %d\n",
- XCONFIG_GIVEN, priv->min_x);
- }
- break;
-
- case MINY:
- if (xf86GetToken(NULL) != NUMBER) {
- xf86ConfigError("MagicTouch minimum y position expected");
- }
- priv->min_y = val->num;
- if (xf86Verbose) {
- ErrorF("%s MagicTouch minimum y position: %d\n",
- XCONFIG_GIVEN, priv->min_y);
- }
- break;
-
- case DEBUG_LEVEL:
- if (xf86GetToken(NULL) != NUMBER) {
- xf86ConfigError("MagicTouch driver debug level expected");
- }
- debug_level = val->num;
- if (xf86Verbose) {
-#if DEBUG
- ErrorF("%s MagicTouch debug level sets to %d\n", XCONFIG_GIVEN,
- debug_level);
-#else
- ErrorF("%s MagicTouch debug not available\n",
- XCONFIG_GIVEN, debug_level);
-#endif
- }
- break;
-
- case HISTORY_SIZE:
- if (xf86GetToken(NULL) != NUMBER) {
- xf86ConfigError("MagicTouch motion history size expected");
- }
- local->history_size = val->num;
- if (xf86Verbose) {
- ErrorF("%s MagicTouch motion history size is %d\n", XCONFIG_GIVEN,
- local->history_size);
- }
- break;
-
- case ALWAYS_CORE:
- xf86AlwaysCore(local, TRUE);
- if (xf86Verbose) {
- ErrorF("%s MagicTouch device will always stays core pointer\n",
- XCONFIG_GIVEN);
- }
- break;
-
- case SWAP_AXES:
- priv->swap_axes = 1;
- if (xf86Verbose) {
- ErrorF("%s MagicTouch device will work with X and Y axes swapped\n",
- XCONFIG_GIVEN);
- }
- break;
-
- case N_SAMPLE_X:
- if (xf86GetToken(NULL) != NUMBER) {
- xf86ConfigError("MagicTouch driver NumSamplesX expected");
- }
- priv->num_medie_x = val->num;
-
-
- if (priv->num_medie_x>MEDIE_X)
- priv->num_medie_x=MEDIE_X;
-
- DBG(4,
- ErrorF("NumSampleX = %d\n", priv->num_medie_x)
- );
-
- break;
-
- case N_SAMPLE_Y:
- if (xf86GetToken(NULL) != NUMBER) {
- xf86ConfigError("MagicTouch driver NumSamplesY expected");
- }
- priv->num_medie_y = val->num;
-
- if (priv->num_medie_y>MEDIE_Y)
- priv->num_medie_y=MEDIE_Y;
-
- DBG(4,
- ErrorF("NumSampleY = %d\n", priv->num_medie_y)
- );
- break;
-
- case EOF:
- FatalError("Unexpected EOF (missing EndSubSection)");
- break;
-
- default:
- xf86ConfigError("MagicTouch subsection keyword expected");
- break;
- }
- }
-
- if (priv->max_x - priv->min_x <= 0) {
- ErrorF("%s MagicTouch: reverse x mode (minimum x position >= maximum x position)\n",
- XCONFIG_GIVEN);
- }
- if (priv->max_y - priv->min_y <= 0) {
- ErrorF("%s MagicTouch: reverse y mode (minimum y position >= maximum y position)\n",
- XCONFIG_GIVEN);
- }
-
- DBG(2, ErrorF("xf86MagicConfig port name=%s\n", priv->input_dev))
-
- return Success;
-}
-
-#endif /* !defined(sun) || defined(i386) */
-#endif /* XFREE86_V4 */
/****************************************************************************
*
@@ -604,9 +261,6 @@ xf86MagicControl(DeviceIntPtr dev,
*/
xf86MotionHistoryAllocate(local);
-#ifndef XFREE86_V4
- AssignTypeAndName(dev, local->atom, local->name);
-#endif /* XFREE86_V4 */
DBG(2, ErrorF("MagicTouch INIT OK\n") );
@@ -615,66 +269,14 @@ xf86MagicControl(DeviceIntPtr dev,
case DEVICE_ON:
DBG(2, ErrorF("MagicTouch ON\n") );
if (local->fd<0) {
-#ifndef XFREE86_V4
- struct termios termios_tty;
- int i,result;
-#endif
DBG(2, ErrorF("Opening device...\n") );
-#ifdef XFREE86_V4
local->fd = xf86OpenSerial(local->options);
if (local->fd<0) {
ErrorF("Impossibile aprire MagicTouch\n");
return !Success;
}
-#else
- SYSCALL( local->fd = open(priv->input_dev, O_RDWR | O_NDELAY, 0) );
- if (local->fd<0) {
- Error("Impossibile aprire MagicTouch\n");
- return !Success;
- }
-
- DBG(3, ErrorF("Provo a configurare il MagicTouch\n") );
-
-
- memset(&termios_tty, 0, sizeof(termios_tty) );
- termios_tty.c_iflag = 0;
- termios_tty.c_cflag = priv->link_speed | CS8 | CREAD | CLOCAL;
- termios_tty.c_oflag = 0;
- termios_tty.c_lflag = 0;
- termios_tty.c_cc[VTIME]=0;
- termios_tty.c_cc[VMIN]=1;
-
- /*
- * Attivo l'RTS per abilitare il touch controller
- */
-#if 0
- SYSCALL( result = ioctl(local->fd, TIOCMGET, &status_line) );
- if (result<0)
- {
- Error("Impossibile leggere stato linee seriale\n");
- close(local->fd);
- return !Success;
- }
- status_line |= TIOCM_RTS;
- SYSCALL( result = ioctl(local->fd, TIOCMSET, &status_line) );
- if (result<0)
- {
- Error("Impossibile settare stato linee seriale\n");
- close(local->fd);
- return !Success;
- }
-#endif
-
- SYSCALL( result = tcsetattr(local->fd, TCSANOW, &termios_tty) );
- if (result<0)
- {
- Error("Impossibile configurare MagicTouch\n");
- close(local->fd);
- return !Success;
- }
-#endif
/* Controlla se e' presente il touch controller.*/
@@ -958,14 +560,12 @@ xf86MagicConvert(LocalDevicePtr local,
*x = (priv->screen_width * (input_x - priv->min_x)) / width;
*y = (priv->screen_height - (priv->screen_height * (input_y - priv->min_y)) / height);
-#ifdef XFREE86_V4
/*
* Need to check if still on the correct screen.
* This call is here so that this work can be done after
* calib and before posting the event.
*/
xf86XInputSetScreen(local, priv->screen_no, *x, *y);
-#endif
DBG(3, ErrorF("MagicConvert: x(%d), y(%d)\n", *x, *y));
@@ -981,17 +581,9 @@ xf86MagicConvert(LocalDevicePtr local,
************************************************************************
*/
static LocalDevicePtr
-#ifndef XFREE86_V4
-xf86MagicAllocate(void)
-#else
xf86MagicAllocate(InputDriverPtr drv)
-#endif
{
-#ifndef XFREE86_V4
- LocalDevicePtr local = (LocalDevicePtr) xalloc( sizeof(LocalDeviceRec) );
-#else
LocalDevicePtr local = xf86AllocateInput(drv, 0);
-#endif
MagicPrivatePtr priv = (MagicPrivatePtr) xalloc( sizeof(MagicPrivateRec) );
@@ -1011,12 +603,7 @@ xf86MagicAllocate(InputDriverPtr drv)
}
/* I buffers sono allocati correttamente */
-#ifdef XFREE86_V4
priv->input_dev = strdup(MAGIC_PORT);
-#else
- priv->input_dev = MAGIC_PORT;
- priv->link_speed = MAGIC_LINK_SPEED;
-#endif
priv->min_x = 60;
priv->max_x = 960;
@@ -1042,11 +629,6 @@ xf86MagicAllocate(InputDriverPtr drv)
local->name = XI_TOUCHSCREEN;
local->flags = 0;
-#ifndef XFREE86_V4
-#if !defined(sun) || defined(i386)
- local->device_config = xf86MagicConfig;
-#endif /* !defined(sun) || defined(i386) */
-#endif /* XFREE86_V4*/
local->device_control = xf86MagicControl;
local->read_input = xf86MagicReadInput;
@@ -1068,40 +650,7 @@ xf86MagicAllocate(InputDriverPtr drv)
#endif
-#ifndef XFREE86_V4
-
-/*
- * Sezione relativa a X < 4.0.0
- */
-
-DeviceAssocRec magictouch_assoc = {
- "magictouch",
- xf86MagicAllocate
-};
-
-#ifdef DYNAMIC_MODULE
-
-#ifndef DLSYM_BUG
-int init_module(unsigned long server_version)
-#else
-int init_xf86Magic(unsigned long server_version)
-#endif
-{
- /* Aggiunge l'assiocazione per il touchscreen */
- xf86AddDeviceAssoc(&magictouch_assoc);
-
- /* Controlla la versione */
- if (server_version != XF86_VERSION_CURRENT) {
- ErrorF("Warining: MagicTouch module compiled for version %s\n", XF86_VERSION);
- return 0;
- }
- return 1;
-}
-#endif /* DYNAMIC_MODULE */
-
-#else
/*
* Sezione relativa a X >= 4.0.0
*/
-#endif /* XFREE86_V4 */
++++++ xf86-input-palmax.diff ++++++
commit 29808414b49ce929ccf5a6729929c2a3ead32b04
Author: Peter Hutterer
Date: Mon May 26 22:18:17 2008 +0930
Check for XINPUT ABI 3.
diff --git a/src/xf86Palmax.c b/src/xf86Palmax.c
index e42f169..bb77f07 100644
--- a/src/xf86Palmax.c
+++ b/src/xf86Palmax.c
@@ -68,7 +68,9 @@ static const char *reqSymbols[] = {
"xf86CollectInputOptions",
"xf86ErrorFVerb",
"xf86FindOptionValue",
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
"xf86GetMotionEvents",
+#endif
"xf86GetVerbosity",
"xf86MotionHistoryAllocate",
"xf86NameCmp",
@@ -467,7 +469,10 @@ xf86PmxControl(DeviceIntPtr dev,
* screen to fit one meter.
*/
- if (InitValuatorClassDeviceStruct(dev, 2, xf86GetMotionEvents,
+ if (InitValuatorClassDeviceStruct(dev, 2,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
+ xf86GetMotionEvents,
+#endif
local->history_size, Absolute) == FALSE) {
ErrorF("Unable to allocate ValuatorClassDeviceStruct\n");
return !Success;
++++++ xf86-input-spaceorb.diff ++++++
commit a34f0fade531ab4c2efeb3ae0adbe45f0e919469
Author: Peter Hutterer
Date: Mon May 26 22:20:14 2008 +0930
Check for XINPUT ABI 3.
diff --git a/src/spaceorb.c b/src/spaceorb.c
index 7a8f6e6..5452ef7 100644
--- a/src/spaceorb.c
+++ b/src/spaceorb.c
@@ -107,7 +107,9 @@ static const char *reqSymbols[] = {
"xf86CollectInputOptions",
"xf86ErrorFVerb",
"xf86FindOptionValue",
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
"xf86GetMotionEvents",
+#endif
"xf86GetVerbosity",
"xf86MotionHistoryAllocate",
"xf86NameCmp",
@@ -337,7 +339,10 @@ DeviceInit (DeviceIntPtr dev)
return !Success;
}
- if (InitValuatorClassDeviceStruct (dev, 6, xf86GetMotionEvents,
+ if (InitValuatorClassDeviceStruct (dev, 6,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
+ xf86GetMotionEvents,
+#endif
pInfo->history_size, Absolute) == FALSE)
{
ErrorF ("Unable to allocate SPACEORB ValuatorClassDeviceStruct\n");
++++++ xf86-input-summa.diff ++++++
++++ 639 lines (skipped)
++++++ xf86-input-synaptics-1.0.0.tar.bz2 -> xf86-input-synaptics-1.0.99.2.tar.bz2 ++++++
++++ 4782 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-synaptics-1.0.0/config.h.in new/xf86-input-synaptics-1.0.99.2/config.h.in
--- old/xf86-input-synaptics-1.0.0/config.h.in 2009-02-02 00:30:16.000000000 +0100
+++ new/xf86-input-synaptics-1.0.99.2/config.h.in 2009-02-27 04:19:17.000000000 +0100
@@ -38,6 +38,9 @@
/* Define to 1 if you have the header file. */
#undef HAVE_UNISTD_H
+/* Use XRecord */
+#undef HAVE_XRECORD
+
/* Name of package */
#undef PACKAGE
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-synaptics-1.0.0/configure.ac new/xf86-input-synaptics-1.0.99.2/configure.ac
--- old/xf86-input-synaptics-1.0.0/configure.ac 2009-02-02 00:29:48.000000000 +0100
+++ new/xf86-input-synaptics-1.0.99.2/configure.ac 2009-02-27 04:18:09.000000000 +0100
@@ -22,7 +22,7 @@
AC_PREREQ(2.57)
AC_INIT([xf86-input-synaptics],
- 1.0.0,
+ 1.0.99.2,
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-input-synaptics)
@@ -71,24 +71,6 @@
AC_DEFINE(BUILD_PSMCOMM, 1, [Optional backend psmcomm enabled])
fi
-#AC_DEFINE(XFree86LOADER,1,[Stub define for loadable drivers])
-#
-#AC_ARG_ENABLE(XINPUT, AS_HELP_STRING([--enable-xinput],
-# [Build XInput support (default: yes)]),
-# [XINPUT=$enableval],[XINPUT=yes])
-#AM_CONDITIONAL(XINPUT, test "x$XINPUT" = "xyes")
-#if test "x$XINPUT" = "xyes" ; then
-# AC_DEFINE(XINPUT,1,[Enable XInput support])
-#fi
-#
-#AC_ARG_ENABLE(XKB, AS_HELP_STRING([--enable-xkb],
-# [Build XKB support (default: yes)]),
-# [XKB=$enableval],[XKB=yes])
-#AM_CONDITIONAL(XKB, test "x$XKB" = "xyes")
-#if test "x$XKB" = "xyes" ; then
-# AC_DEFINE(XKB,1,[Enable XKB support])
-#fi
-
AC_ARG_WITH(xorg-module-dir,
AC_HELP_STRING([--with-xorg-module-dir=DIR],
[Default xorg module directory [[default=$libdir/xorg/modules]]]),
@@ -98,7 +80,6 @@
AC_SUBST(inputdir)
# Checks for extensions
-XORG_DRIVER_CHECK_EXT(RANDR, randrproto)
XORG_DRIVER_CHECK_EXT(XINPUT, inputproto)
# Checks for pkg-config packages
@@ -111,6 +92,8 @@
# Checks for libraries.
PKG_CHECK_MODULES(XLIB, x11) # needed for syndaemon
+PKG_CHECK_MODULES(XRECORD, xtst, AC_DEFINE([HAVE_XRECORD],[],[Use XRecord]), true)
+PKG_CHECK_MODULES(XI, xi);
# Checks for header files.
AC_HEADER_STDC
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-synaptics-1.0.0/include/synaptics.h new/xf86-input-synaptics-1.0.99.2/include/synaptics.h
--- old/xf86-input-synaptics-1.0.0/include/synaptics.h 2009-01-26 11:45:41.000000000 +0100
+++ new/xf86-input-synaptics-1.0.99.2/include/synaptics.h 2009-02-26 05:20:07.000000000 +0100
@@ -88,6 +88,7 @@
int emulate_mid_button_time; /* Max time between left and right button presses to
emulate a middle button press. */
int emulate_twofinger_z; /* pressure threshold to emulate two finger touch (for Alps) */
+ int emulate_twofinger_w; /* Finger width threshold to emulate two finger touch */
int scroll_dist_vert; /* Scrolling distance in absolute coordinates */
int scroll_dist_horiz; /* Scrolling distance in absolute coordinates */
Bool scroll_edge_vert; /* Enable/disable vertical scrolling on right edge */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-synaptics-1.0.0/include/synaptics-properties.h new/xf86-input-synaptics-1.0.99.2/include/synaptics-properties.h
--- old/xf86-input-synaptics-1.0.0/include/synaptics-properties.h 2009-02-02 00:28:41.000000000 +0100
+++ new/xf86-input-synaptics-1.0.99.2/include/synaptics-properties.h 2009-02-26 05:20:07.000000000 +0100
@@ -57,6 +57,9 @@
/* 32 bit */
#define SYNAPTICS_PROP_TWOFINGER_PRESSURE "Synaptics Two-Finger Pressure"
+/* 32 bit */
+#define SYNAPTICS_PROP_TWOFINGER_WIDTH "Synaptics Two-Finger Width"
+
/* 32 bit, 2 values, vert, horiz */
#define SYNAPTICS_PROP_SCROLL_DISTANCE "Synaptics Scrolling Distance"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-synaptics-1.0.0/man/synaptics.man new/xf86-input-synaptics-1.0.99.2/man/synaptics.man
--- old/xf86-input-synaptics-1.0.0/man/synaptics.man 2009-02-02 00:28:40.000000000 +0100
+++ new/xf86-input-synaptics-1.0.99.2/man/synaptics.man 2009-02-26 05:20:07.000000000 +0100
@@ -242,6 +242,11 @@
For touchpads not capable of detecting multiple fingers (Alps), this sets the
Z pressure threshold to emulate a two finger press.
.TP
+.BI "Option \*qEmulateTwoFingerMinW\*q \*q" integer \*q
+Some touchpads report a two-finger touch as wide finger. This sets the finger
+width threshold to emulate a two finger press. This feature works best with
+(\fBPalmDetect\fR) off.
+.TP
.BI "Option \*qTouchpadOff\*q \*q" integer \*q
Switch off the touchpad.
.
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-synaptics-1.0.0/man/synclient.man new/xf86-input-synaptics-1.0.99.2/man/synclient.man
--- old/xf86-input-synaptics-1.0.0/man/synclient.man 2008-10-03 10:20:48.000000000 +0200
+++ new/xf86-input-synaptics-1.0.99.2/man/synclient.man 2009-02-26 05:32:18.000000000 +0100
@@ -13,13 +13,14 @@
.SH "DESCRIPTION"
.LP
This program lets you change your Synaptics TouchPad driver for
-XOrg/XFree86 server parameters while X is running if you enabled
-SHMConfig "on" in your XOrg/XFree86 configuration.
-.TP
-WARNING: This is not secure if you are in an untrusted multiuser
-environment.
-.
-All local users can change the parameters at any time.
+XOrg/XFree86 server parameters while X is running.
+
+This program provides two mechanism: via input device properties (default) and
+via a shared memory (SHM) area. SHM must be enabled through SHMConfig "on" in
+your XOrg/XFree86 configuration.
+
+WARNING: The SHM mechanism is not secure if you are in an untrusted multiuser
+environment. All local users can change the parameters at any time.
.SH "OPTIONS"
.LP
.TP
@@ -30,6 +31,7 @@
.
Whenever a change in the touchpad state is detected, one line of
output is generated that describes the current state of the touchpad.
+This option is only available in SHM mode.
.
The following data is included in the output.
.RS
@@ -98,7 +100,7 @@
.RE
.TP
\fB\-h\fR
-Show detected hardware properties.
+Show detected hardware properties. Only available in SHM mode.
.TP
\fB\-l\fR
List current user settings.
@@ -109,6 +111,9 @@
\fB\-?\fR
Show the help message.
.TP
+\fB\-s\fR
+Force SHM mode. Implicit if -m or -h is specified.
+.TP
\fBvar=value\fR
Set user parameter \fIvar\fR to \fIvalue\fR.
@@ -124,7 +129,7 @@
.LP
synclient EdgeMotionSpeed=0
.LP
-To monitor touchpad events:
+To monitor touchpad events (requires SHM):
.LP
synclient \-m 100
.SH "AUTHORS"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-synaptics-1.0.0/man/syndaemon.man new/xf86-input-synaptics-1.0.99.2/man/syndaemon.man
--- old/xf86-input-synaptics-1.0.0/man/syndaemon.man 2009-02-01 23:36:56.000000000 +0100
+++ new/xf86-input-synaptics-1.0.99.2/man/syndaemon.man 2009-02-26 05:20:07.000000000 +0100
@@ -48,6 +48,11 @@
.TP
\fB\-K\fP
Like \-k but also ignore Modifier+Key combos.
+.LP
+.TP
+\fB\-R\fP
+Disable the use of the XRecord extension for detecting keyboard activity.
+This will force the use of polling the keyboard state.
.SH "ENVIRONMENT VARIABLES"
.LP
.TP
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-synaptics-1.0.0/src/properties.c new/xf86-input-synaptics-1.0.99.2/src/properties.c
--- old/xf86-input-synaptics-1.0.0/src/properties.c 2009-02-02 00:28:41.000000000 +0100
+++ new/xf86-input-synaptics-1.0.99.2/src/properties.c 2009-02-26 05:20:07.000000000 +0100
@@ -52,6 +52,7 @@
Atom prop_tap_fast = 0;
Atom prop_middle_timeout = 0;
Atom prop_twofinger_pressure = 0;
+Atom prop_twofinger_width = 0;
Atom prop_scrolldist = 0;
Atom prop_scrolledge = 0;
Atom prop_scrolltwofinger = 0;
@@ -172,6 +173,8 @@
32, 1, ¶->emulate_mid_button_time);
prop_twofinger_pressure = InitAtom(local->dev, SYNAPTICS_PROP_TWOFINGER_PRESSURE,
32, 1, ¶->emulate_twofinger_z);
+ prop_twofinger_width = InitAtom(local->dev, SYNAPTICS_PROP_TWOFINGER_WIDTH,
+ 32, 1, ¶->emulate_twofinger_w);
values[0] = para->scroll_dist_vert;
values[1] = para->scroll_dist_horiz;
@@ -340,6 +343,12 @@
return BadMatch;
para->emulate_twofinger_z = *(INT32*)prop->data;
+ } else if (property == prop_twofinger_width)
+ {
+ if (prop->size != 1 || prop->format != 32 || prop->type != XA_INTEGER)
+ return BadMatch;
+
+ para->emulate_twofinger_w = *(INT32*)prop->data;
} else if (property == prop_scrolldist)
{
INT32 *dist;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-synaptics-1.0.0/src/synaptics.c new/xf86-input-synaptics-1.0.99.2/src/synaptics.c
--- old/xf86-input-synaptics-1.0.0/src/synaptics.c 2009-01-26 11:45:41.000000000 +0100
+++ new/xf86-input-synaptics-1.0.99.2/src/synaptics.c 2009-02-26 05:20:07.000000000 +0100
@@ -289,17 +289,6 @@
priv->synpara = NULL;
}
-static double
-synSetFloatOption(pointer options, const char *optname, double default_value)
-{
- char *str_par;
- double value;
- str_par = xf86FindOptionValue(options, optname);
- if ((!str_par) || (sscanf(str_par, "%lf", &value) != 1))
- return default_value;
- return value;
-}
-
static void set_default_parameters(LocalDevicePtr local)
{
SynapticsPrivate *priv = local->private; /* read-only */
@@ -313,6 +302,7 @@
double accelFactor; /* 1/pixels */
int fingerLow, fingerHigh, fingerPress; /* pressure */
int emulateTwoFingerMinZ; /* pressure */
+ int emulateTwoFingerMinW; /* width */
int edgeMotionMinZ, edgeMotionMaxZ; /* pressure */
int pressureMotionMinZ, pressureMotionMaxZ; /* pressure */
int palmMinWidth, palmMinZ; /* pressure */
@@ -372,15 +362,15 @@
int range = priv->maxp - priv->minp;
/* scaling based on defaults below and a pressure of 256 */
- fingerLow = priv->minp + range * .098;
- fingerHigh = priv->minp + range * .117;
+ fingerLow = priv->minp + range * (25.0/256);
+ fingerHigh = priv->minp + range * (30.0/256);
fingerPress = priv->minp + range * 1.000;
- emulateTwoFingerMinZ = priv->minp + range * 1.1;
- edgeMotionMinZ = priv->minp + range * .117;
- edgeMotionMaxZ = priv->minp + range * .625;
- pressureMotionMinZ = priv->minp + range * .117;
- pressureMotionMaxZ = priv->minp + range * .625;
- palmMinZ = priv->minp + range * .781;
+ emulateTwoFingerMinZ = priv->minp + range * (282.0/256);
+ edgeMotionMinZ = priv->minp + range * (30.0/256);
+ edgeMotionMaxZ = priv->minp + range * (160.0/256);
+ pressureMotionMinZ = priv->minp + range * (30.0/256);
+ pressureMotionMaxZ = priv->minp + range * (160.0/256);
+ palmMinZ = priv->minp + range * (200.0/256);
} else {
fingerLow = 25;
fingerHigh = 30;
@@ -397,10 +387,11 @@
int range = priv->maxw - priv->minw;
/* scaling based on defaults below and a tool width of 16 */
- palmMinWidth = priv->minw + range * .625;
-
+ palmMinWidth = priv->minw + range * (10.0/16);
+ emulateTwoFingerMinW = priv->minw + range * (7.0/16);
} else {
palmMinWidth = 10;
+ emulateTwoFingerMinW = 7;
}
/* Enable tap if we don't have a phys left button */
@@ -438,6 +429,7 @@
pars->fast_taps = xf86SetBoolOption(opts, "FastTaps", FALSE);
pars->emulate_mid_button_time = xf86SetIntOption(opts, "EmulateMidButtonTime", 75);
pars->emulate_twofinger_z = xf86SetIntOption(opts, "EmulateTwoFingerMinZ", emulateTwoFingerMinZ);
+ pars->emulate_twofinger_w = xf86SetIntOption(opts, "EmulateTwoFingerMinW", emulateTwoFingerMinW);
pars->scroll_dist_vert = xf86SetIntOption(opts, "VertScrollDelta", horizScrollDelta);
pars->scroll_dist_horiz = xf86SetIntOption(opts, "HorizScrollDelta", vertScrollDelta);
pars->scroll_edge_vert = xf86SetBoolOption(opts, "VertEdgeScroll", vertEdgeScroll);
@@ -484,14 +476,14 @@
pars->press_motion_min_z = xf86SetIntOption(opts, "PressureMotionMinZ", pressureMotionMinZ);
pars->press_motion_max_z = xf86SetIntOption(opts, "PressureMotionMaxZ", pressureMotionMaxZ);
- pars->min_speed = synSetFloatOption(opts, "MinSpeed", 0.4);
- pars->max_speed = synSetFloatOption(opts, "MaxSpeed", 0.7);
- pars->accl = synSetFloatOption(opts, "AccelFactor", accelFactor);
- pars->trackstick_speed = synSetFloatOption(opts, "TrackstickSpeed", 40);
- pars->scroll_dist_circ = synSetFloatOption(opts, "CircScrollDelta", 0.1);
- pars->coasting_speed = synSetFloatOption(opts, "CoastingSpeed", 0.0);
- pars->press_motion_min_factor = synSetFloatOption(opts, "PressureMotionMinFactor", 1.0);
- pars->press_motion_max_factor = synSetFloatOption(opts, "PressureMotionMaxFactor", 1.0);
+ pars->min_speed = xf86SetRealOption(opts, "MinSpeed", 0.4);
+ pars->max_speed = xf86SetRealOption(opts, "MaxSpeed", 0.7);
+ pars->accl = xf86SetRealOption(opts, "AccelFactor", accelFactor);
+ pars->trackstick_speed = xf86SetRealOption(opts, "TrackstickSpeed", 40);
+ pars->scroll_dist_circ = xf86SetRealOption(opts, "CircScrollDelta", 0.1);
+ pars->coasting_speed = xf86SetRealOption(opts, "CoastingSpeed", 0.0);
+ pars->press_motion_min_factor = xf86SetRealOption(opts, "PressureMotionMinFactor", 1.0);
+ pars->press_motion_max_factor = xf86SetRealOption(opts, "PressureMotionMaxFactor", 1.0);
pars->grab_event_device = xf86SetBoolOption(opts, "GrabEventDevice", TRUE);
/* Warn about (and fix) incorrectly configured TopEdge/BottomEdge parameters */
@@ -1942,7 +1934,8 @@
}
/* Two finger emulation */
- if (hw->z >= para->emulate_twofinger_z && hw->numFingers == 1) {
+ if (hw->numFingers == 1 && hw->z >= para->emulate_twofinger_z &&
+ hw->fingerWidth >= para->emulate_twofinger_w) {
hw->numFingers = 2;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-synaptics-1.0.0/tools/Makefile.am new/xf86-input-synaptics-1.0.99.2/tools/Makefile.am
--- old/xf86-input-synaptics-1.0.0/tools/Makefile.am 2009-02-01 23:36:56.000000000 +0100
+++ new/xf86-input-synaptics-1.0.99.2/tools/Makefile.am 2009-02-26 05:32:18.000000000 +0100
@@ -25,7 +25,7 @@
INCLUDES=-I$(top_srcdir)/include/
synclient_SOURCES = synclient.c
-synclient_LDFLAGS = -lm
+synclient_LDFLAGS = -lm $(XLIB_LIBS) $(XI_LIBS)
syndaemon_SOURCES = syndaemon.c
-syndaemon_LDFLAGS = $(XLIB_LIBS)
+syndaemon_LDFLAGS = $(XLIB_LIBS) $(XRECORD_LIBS)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-synaptics-1.0.0/tools/synclient.c new/xf86-input-synaptics-1.0.99.2/tools/synclient.c
--- old/xf86-input-synaptics-1.0.0/tools/synclient.c 2009-01-26 11:45:41.000000000 +0100
+++ new/xf86-input-synaptics-1.0.99.2/tools/synclient.c 2009-02-27 03:46:20.000000000 +0100
@@ -40,7 +40,16 @@
#include
#include
+#include
+#include
+#include
#include "synaptics.h"
+#include "synaptics-properties.h"
+#include
+
+#ifndef XATOM_FLOAT
+#define XATOM_FLOAT "FLOAT"
+#endif
enum ParaType {
PT_INT,
@@ -54,80 +63,149 @@
enum ParaType type; /* Type of parameter */
double min_val; /* Minimum allowed value */
double max_val; /* Maximum allowed value */
+ char *prop_name; /* Property name */
+ int prop_format; /* Property format (0 for floats) */
+ int prop_offset; /* Offset inside property */
};
-#define DEFINE_PAR(name, memb, type, min_val, max_val) \
-{ name, offsetof(SynapticsSHM, memb), (type), (min_val), (max_val) }
+#define DEFINE_PAR(name, memb, type, min_val, max_val, pname, pformat, poffset) \
+{ name, offsetof(SynapticsSHM, memb), (type), (min_val), (max_val), \
+ (pname), (pformat), (poffset) }
static struct Parameter params[] = {
- DEFINE_PAR("LeftEdge", left_edge, PT_INT, 0, 10000),
- DEFINE_PAR("RightEdge", right_edge, PT_INT, 0, 10000),
- DEFINE_PAR("TopEdge", top_edge, PT_INT, 0, 10000),
- DEFINE_PAR("BottomEdge", bottom_edge, PT_INT, 0, 10000),
- DEFINE_PAR("FingerLow", finger_low, PT_INT, 0, 255),
- DEFINE_PAR("FingerHigh", finger_high, PT_INT, 0, 255),
- DEFINE_PAR("FingerPress", finger_press, PT_INT, 0, 256),
- DEFINE_PAR("MaxTapTime", tap_time, PT_INT, 0, 1000),
- DEFINE_PAR("MaxTapMove", tap_move, PT_INT, 0, 2000),
- DEFINE_PAR("MaxDoubleTapTime", tap_time_2, PT_INT, 0, 1000),
- DEFINE_PAR("SingleTapTimeout", single_tap_timeout, PT_INT, 0, 1000),
- DEFINE_PAR("ClickTime", click_time, PT_INT, 0, 1000),
- DEFINE_PAR("FastTaps", fast_taps, PT_BOOL, 0, 1),
- DEFINE_PAR("EmulateMidButtonTime", emulate_mid_button_time, PT_INT, 0, 1000),
- DEFINE_PAR("EmulateTwoFingerMinZ", emulate_twofinger_z, PT_INT, 0, 1000),
- DEFINE_PAR("VertScrollDelta", scroll_dist_vert, PT_INT, 0, 1000),
- DEFINE_PAR("HorizScrollDelta", scroll_dist_horiz, PT_INT, 0, 1000),
- DEFINE_PAR("VertEdgeScroll", scroll_edge_vert, PT_BOOL, 0, 1),
- DEFINE_PAR("HorizEdgeScroll", scroll_edge_horiz, PT_BOOL, 0, 1),
- DEFINE_PAR("CornerCoasting", scroll_edge_corner, PT_BOOL, 0, 1),
- DEFINE_PAR("VertTwoFingerScroll", scroll_twofinger_vert, PT_BOOL, 0, 1),
- DEFINE_PAR("HorizTwoFingerScroll", scroll_twofinger_horiz, PT_BOOL, 0, 1),
- DEFINE_PAR("MinSpeed", min_speed, PT_DOUBLE, 0, 1.0),
- DEFINE_PAR("MaxSpeed", max_speed, PT_DOUBLE, 0, 1.0),
- DEFINE_PAR("AccelFactor", accl, PT_DOUBLE, 0, 0.2),
- DEFINE_PAR("TrackstickSpeed", trackstick_speed, PT_DOUBLE, 0, 200.0),
- DEFINE_PAR("EdgeMotionMinZ", edge_motion_min_z, PT_INT, 1, 255),
- DEFINE_PAR("EdgeMotionMaxZ", edge_motion_max_z, PT_INT, 1, 255),
- DEFINE_PAR("EdgeMotionMinSpeed", edge_motion_min_speed, PT_INT, 0, 1000),
- DEFINE_PAR("EdgeMotionMaxSpeed", edge_motion_max_speed, PT_INT, 0, 1000),
- DEFINE_PAR("EdgeMotionUseAlways", edge_motion_use_always, PT_BOOL, 0, 1),
- DEFINE_PAR("UpDownScrolling", updown_button_scrolling, PT_BOOL, 0, 1),
- DEFINE_PAR("LeftRightScrolling", leftright_button_scrolling, PT_BOOL, 0, 1),
- DEFINE_PAR("UpDownScrollRepeat", updown_button_repeat, PT_BOOL, 0, 1),
- DEFINE_PAR("LeftRightScrollRepeat",leftright_button_repeat, PT_BOOL, 0, 1),
- DEFINE_PAR("ScrollButtonRepeat", scroll_button_repeat, PT_INT, SBR_MIN , SBR_MAX),
- DEFINE_PAR("TouchpadOff", touchpad_off, PT_INT, 0, 2),
- DEFINE_PAR("GuestMouseOff", guestmouse_off, PT_BOOL, 0, 1),
- DEFINE_PAR("LockedDrags", locked_drags, PT_BOOL, 0, 1),
- DEFINE_PAR("LockedDragTimeout", locked_drag_time, PT_INT, 0, 30000),
- DEFINE_PAR("RTCornerButton", tap_action[RT_TAP], PT_INT, 0, SYN_MAX_BUTTONS),
- DEFINE_PAR("RBCornerButton", tap_action[RB_TAP], PT_INT, 0, SYN_MAX_BUTTONS),
- DEFINE_PAR("LTCornerButton", tap_action[LT_TAP], PT_INT, 0, SYN_MAX_BUTTONS),
- DEFINE_PAR("LBCornerButton", tap_action[LB_TAP], PT_INT, 0, SYN_MAX_BUTTONS),
- DEFINE_PAR("TapButton1", tap_action[F1_TAP], PT_INT, 0, SYN_MAX_BUTTONS),
- DEFINE_PAR("TapButton2", tap_action[F2_TAP], PT_INT, 0, SYN_MAX_BUTTONS),
- DEFINE_PAR("TapButton3", tap_action[F3_TAP], PT_INT, 0, SYN_MAX_BUTTONS),
- DEFINE_PAR("ClickFinger1", click_action[F1_CLICK1], PT_INT, 0, SYN_MAX_BUTTONS),
- DEFINE_PAR("ClickFinger2", click_action[F2_CLICK1], PT_INT, 0, SYN_MAX_BUTTONS),
- DEFINE_PAR("ClickFinger3", click_action[F3_CLICK1], PT_INT, 0, SYN_MAX_BUTTONS),
- DEFINE_PAR("CircularScrolling", circular_scrolling, PT_BOOL, 0, 1),
- DEFINE_PAR("CircScrollDelta", scroll_dist_circ, PT_DOUBLE, .01, 3),
- DEFINE_PAR("CircScrollTrigger", circular_trigger, PT_INT, 0, 8),
- DEFINE_PAR("CircularPad", circular_pad, PT_BOOL, 0, 1),
- DEFINE_PAR("PalmDetect", palm_detect, PT_BOOL, 0, 1),
- DEFINE_PAR("PalmMinWidth", palm_min_width, PT_INT, 0, 15),
- DEFINE_PAR("PalmMinZ", palm_min_z, PT_INT, 0, 255),
- DEFINE_PAR("CoastingSpeed", coasting_speed, PT_DOUBLE, 0, 20),
- DEFINE_PAR("PressureMotionMinZ", press_motion_min_z, PT_INT, 1, 255),
- DEFINE_PAR("PressureMotionMaxZ", press_motion_max_z, PT_INT, 1, 255),
- DEFINE_PAR("PressureMotionMinFactor", press_motion_min_factor, PT_DOUBLE, 0, 10.0),
- DEFINE_PAR("PressureMotionMaxFactor", press_motion_max_factor, PT_DOUBLE, 0, 10.0),
- DEFINE_PAR("GrabEventDevice", grab_event_device, PT_BOOL, 0, 1),
+ DEFINE_PAR("LeftEdge", left_edge, PT_INT, 0, 10000,
+ SYNAPTICS_PROP_EDGES, 32, 0),
+ DEFINE_PAR("RightEdge", right_edge, PT_INT, 0, 10000,
+ SYNAPTICS_PROP_EDGES, 32, 1),
+ DEFINE_PAR("TopEdge", top_edge, PT_INT, 0, 10000,
+ SYNAPTICS_PROP_EDGES, 32, 2),
+ DEFINE_PAR("BottomEdge", bottom_edge, PT_INT, 0, 10000,
+ SYNAPTICS_PROP_EDGES, 32, 3),
+ DEFINE_PAR("FingerLow", finger_low, PT_INT, 0, 255,
+ SYNAPTICS_PROP_FINGER, 32, 0),
+ DEFINE_PAR("FingerHigh", finger_high, PT_INT, 0, 255,
+ SYNAPTICS_PROP_FINGER, 32, 1),
+ DEFINE_PAR("FingerPress", finger_press, PT_INT, 0, 256,
+ SYNAPTICS_PROP_FINGER, 32, 2),
+ DEFINE_PAR("MaxTapTime", tap_time, PT_INT, 0, 1000,
+ SYNAPTICS_PROP_TAP_TIME, 32, 0),
+ DEFINE_PAR("MaxTapMove", tap_move, PT_INT, 0, 2000,
+ SYNAPTICS_PROP_TAP_MOVE, 32, 0),
+ DEFINE_PAR("MaxDoubleTapTime", tap_time_2, PT_INT, 0, 1000,
+ SYNAPTICS_PROP_TAP_DURATIONS, 32, 1),
+ DEFINE_PAR("SingleTapTimeout", single_tap_timeout, PT_INT, 0, 1000,
+ SYNAPTICS_PROP_TAP_DURATIONS, 32, 0),
+ DEFINE_PAR("ClickTime", click_time, PT_INT, 0, 1000,
+ SYNAPTICS_PROP_TAP_DURATIONS, 32, 2),
+ DEFINE_PAR("FastTaps", fast_taps, PT_BOOL, 0, 1,
+ SYNAPTICS_PROP_TAP_FAST, 8, 0),
+ DEFINE_PAR("EmulateMidButtonTime", emulate_mid_button_time, PT_INT, 0, 1000,
+ SYNAPTICS_PROP_MIDDLE_TIMEOUT, 32, 0),
+ DEFINE_PAR("EmulateTwoFingerMinZ", emulate_twofinger_z, PT_INT, 0, 1000,
+ SYNAPTICS_PROP_TWOFINGER_PRESSURE, 32, 0),
+ DEFINE_PAR("EmulateTwoFingerMinW", emulate_twofinger_w, PT_INT, 0, 15,
+ SYNAPTICS_PROP_TWOFINGER_WIDTH, 32, 0),
+ DEFINE_PAR("VertScrollDelta", scroll_dist_vert, PT_INT, 0, 1000,
+ SYNAPTICS_PROP_SCROLL_DISTANCE, 32, 0),
+ DEFINE_PAR("HorizScrollDelta", scroll_dist_horiz, PT_INT, 0, 1000,
+ SYNAPTICS_PROP_SCROLL_DISTANCE, 32, 1),
+ DEFINE_PAR("VertEdgeScroll", scroll_edge_vert, PT_BOOL, 0, 1,
+ SYNAPTICS_PROP_SCROLL_EDGE, 8, 0),
+ DEFINE_PAR("HorizEdgeScroll", scroll_edge_horiz, PT_BOOL, 0, 1,
+ SYNAPTICS_PROP_SCROLL_EDGE, 8, 1),
+ DEFINE_PAR("CornerCoasting", scroll_edge_corner, PT_BOOL, 0, 1,
+ SYNAPTICS_PROP_SCROLL_EDGE, 8, 2),
+ DEFINE_PAR("VertTwoFingerScroll", scroll_twofinger_vert, PT_BOOL, 0, 1,
+ SYNAPTICS_PROP_SCROLL_TWOFINGER, 8, 0),
+ DEFINE_PAR("HorizTwoFingerScroll", scroll_twofinger_horiz, PT_BOOL, 0, 1,
+ SYNAPTICS_PROP_SCROLL_TWOFINGER, 8, 1),
+ DEFINE_PAR("MinSpeed", min_speed, PT_DOUBLE, 0, 1.0,
+ SYNAPTICS_PROP_SPEED, 0, /*float */ 0),
+ DEFINE_PAR("MaxSpeed", max_speed, PT_DOUBLE, 0, 1.0,
+ SYNAPTICS_PROP_SPEED, 0, /*float */ 1),
+ DEFINE_PAR("AccelFactor", accl, PT_DOUBLE, 0, 0.2,
+ SYNAPTICS_PROP_SPEED, 0, /*float */ 2),
+ DEFINE_PAR("TrackstickSpeed", trackstick_speed, PT_DOUBLE, 0, 200.0,
+ SYNAPTICS_PROP_SPEED, 0, /*float */ 3),
+ DEFINE_PAR("EdgeMotionMinZ", edge_motion_min_z, PT_INT, 1, 255,
+ SYNAPTICS_PROP_EDGEMOTION_PRESSURE, 32, 0),
+ DEFINE_PAR("EdgeMotionMaxZ", edge_motion_max_z, PT_INT, 1, 255,
+ SYNAPTICS_PROP_EDGEMOTION_PRESSURE, 32, 1),
+ DEFINE_PAR("EdgeMotionMinSpeed", edge_motion_min_speed, PT_INT, 0, 1000,
+ SYNAPTICS_PROP_EDGEMOTION_SPEED, 32, 0),
+ DEFINE_PAR("EdgeMotionMaxSpeed", edge_motion_max_speed, PT_INT, 0, 1000,
+ SYNAPTICS_PROP_EDGEMOTION_SPEED, 32, 1),
+ DEFINE_PAR("EdgeMotionUseAlways", edge_motion_use_always, PT_BOOL, 0, 1,
+ SYNAPTICS_PROP_EDGEMOTION, 8, 0),
+ DEFINE_PAR("UpDownScrolling", updown_button_scrolling, PT_BOOL, 0, 1,
+ SYNAPTICS_PROP_BUTTONSCROLLING, 8, 0),
+ DEFINE_PAR("LeftRightScrolling", leftright_button_scrolling, PT_BOOL, 0, 1,
+ SYNAPTICS_PROP_BUTTONSCROLLING, 8, 1),
+ DEFINE_PAR("UpDownScrollRepeat", updown_button_repeat, PT_BOOL, 0, 1,
+ SYNAPTICS_PROP_BUTTONSCROLLING_REPEAT, 8, 0),
+ DEFINE_PAR("LeftRightScrollRepeat",leftright_button_repeat, PT_BOOL, 0, 1,
+ SYNAPTICS_PROP_BUTTONSCROLLING_REPEAT, 8, 1),
+ DEFINE_PAR("ScrollButtonRepeat", scroll_button_repeat, PT_INT, SBR_MIN , SBR_MAX,
+ SYNAPTICS_PROP_BUTTONSCROLLING_TIME, 32, 0),
+ DEFINE_PAR("TouchpadOff", touchpad_off, PT_INT, 0, 2,
+ SYNAPTICS_PROP_OFF, 8, 0),
+ DEFINE_PAR("GuestMouseOff", guestmouse_off, PT_BOOL, 0, 1,
+ SYNAPTICS_PROP_GUESTMOUSE, 8, 0),
+ DEFINE_PAR("LockedDrags", locked_drags, PT_BOOL, 0, 1,
+ SYNAPTICS_PROP_LOCKED_DRAGS, 8, 0),
+ DEFINE_PAR("LockedDragTimeout", locked_drag_time, PT_INT, 0, 30000,
+ SYNAPTICS_PROP_LOCKED_DRAGS_TIMEOUT, 32, 0),
+ DEFINE_PAR("RTCornerButton", tap_action[RT_TAP], PT_INT, 0, SYN_MAX_BUTTONS,
+ SYNAPTICS_PROP_TAP_ACTION, 8, 0),
+ DEFINE_PAR("RBCornerButton", tap_action[RB_TAP], PT_INT, 0, SYN_MAX_BUTTONS,
+ SYNAPTICS_PROP_TAP_ACTION, 8, 1),
+ DEFINE_PAR("LTCornerButton", tap_action[LT_TAP], PT_INT, 0, SYN_MAX_BUTTONS,
+ SYNAPTICS_PROP_TAP_ACTION, 8, 2),
+ DEFINE_PAR("LBCornerButton", tap_action[LB_TAP], PT_INT, 0, SYN_MAX_BUTTONS,
+ SYNAPTICS_PROP_TAP_ACTION, 8, 3),
+ DEFINE_PAR("TapButton1", tap_action[F1_TAP], PT_INT, 0, SYN_MAX_BUTTONS,
+ SYNAPTICS_PROP_TAP_ACTION, 8, 4),
+ DEFINE_PAR("TapButton2", tap_action[F2_TAP], PT_INT, 0, SYN_MAX_BUTTONS,
+ SYNAPTICS_PROP_TAP_ACTION, 8, 5),
+ DEFINE_PAR("TapButton3", tap_action[F3_TAP], PT_INT, 0, SYN_MAX_BUTTONS,
+ SYNAPTICS_PROP_TAP_ACTION, 8, 6),
+ DEFINE_PAR("ClickFinger1", click_action[F1_CLICK1], PT_INT, 0, SYN_MAX_BUTTONS,
+ SYNAPTICS_PROP_CLICK_ACTION, 8, 0),
+ DEFINE_PAR("ClickFinger2", click_action[F2_CLICK1], PT_INT, 0, SYN_MAX_BUTTONS,
+ SYNAPTICS_PROP_CLICK_ACTION, 8, 1),
+ DEFINE_PAR("ClickFinger3", click_action[F3_CLICK1], PT_INT, 0, SYN_MAX_BUTTONS,
+ SYNAPTICS_PROP_CLICK_ACTION, 8, 2),
+ DEFINE_PAR("CircularScrolling", circular_scrolling, PT_BOOL, 0, 1,
+ SYNAPTICS_PROP_CIRCULAR_SCROLLING, 8, 0),
+ DEFINE_PAR("CircScrollDelta", scroll_dist_circ, PT_DOUBLE, .01, 3,
+ SYNAPTICS_PROP_CIRCULAR_SCROLLING_DIST, 0 /* float */, 0),
+ DEFINE_PAR("CircScrollTrigger", circular_trigger, PT_INT, 0, 8,
+ SYNAPTICS_PROP_CIRCULAR_SCROLLING_TRIGGER, 8, 0),
+ DEFINE_PAR("CircularPad", circular_pad, PT_BOOL, 0, 1,
+ SYNAPTICS_PROP_CIRCULAR_PAD, 8, 0),
+ DEFINE_PAR("PalmDetect", palm_detect, PT_BOOL, 0, 1,
+ SYNAPTICS_PROP_PALM_DETECT, 8, 0),
+ DEFINE_PAR("PalmMinWidth", palm_min_width, PT_INT, 0, 15,
+ SYNAPTICS_PROP_PALM_DIMENSIONS, 32, 0),
+ DEFINE_PAR("PalmMinZ", palm_min_z, PT_INT, 0, 255,
+ SYNAPTICS_PROP_PALM_DIMENSIONS, 32, 1),
+ DEFINE_PAR("CoastingSpeed", coasting_speed, PT_DOUBLE, 0, 20,
+ SYNAPTICS_PROP_COASTING_SPEED, 0 /* float*/, 0),
+ DEFINE_PAR("PressureMotionMinZ", press_motion_min_z, PT_INT, 1, 255,
+ SYNAPTICS_PROP_PRESSURE_MOTION, 32, 0),
+ DEFINE_PAR("PressureMotionMaxZ", press_motion_max_z, PT_INT, 1, 255,
+ SYNAPTICS_PROP_PRESSURE_MOTION, 32, 1),
+ DEFINE_PAR("PressureMotionMinFactor", press_motion_min_factor, PT_DOUBLE, 0, 10.0,
+ SYNAPTICS_PROP_PRESSURE_MOTION_FACTOR, 0 /*float*/, 0),
+ DEFINE_PAR("PressureMotionMaxFactor", press_motion_max_factor, PT_DOUBLE, 0, 10.0,
+ SYNAPTICS_PROP_PRESSURE_MOTION_FACTOR, 0 /*float*/, 1),
+ DEFINE_PAR("GrabEventDevice", grab_event_device, PT_BOOL, 0, 1,
+ SYNAPTICS_PROP_GRAB, 8, 0),
{ NULL, 0, 0, 0, 0 }
};
static void
-show_hw_info(SynapticsSHM *synshm)
+shm_show_hw_info(SynapticsSHM *synshm)
{
printf("Hardware properties:\n");
if (synshm->synhw.model_id) {
@@ -143,7 +221,7 @@
}
static void
-show_settings(SynapticsSHM *synshm)
+shm_show_settings(SynapticsSHM *synshm)
{
int i;
@@ -164,48 +242,65 @@
}
}
+static double
+parse_cmd(char* cmd, struct Parameter** par)
+{
+ char *eqp = index(cmd, '=');
+ *par = NULL;
+
+ if (eqp) {
+ int j;
+ int found = 0;
+ *eqp = 0;
+ for (j = 0; params[j].name; j++) {
+ if (strcasecmp(cmd, params[j].name) == 0) {
+ found = 1;
+ break;
+ }
+ }
+ if (found) {
+ double val = atof(&eqp[1]);
+ *par = ¶ms[j];
+
+ if (val < (*par)->min_val)
+ val = (*par)->min_val;
+ if (val > (*par)->max_val)
+ val = (*par)->max_val;
+
+ return val;
+ } else {
+ printf("Unknown parameter %s\n", cmd);
+ }
+ } else {
+ printf("Invalid command: %s\n", cmd);
+ }
+
+ return 0;
+}
+
static void
-set_variables(SynapticsSHM *synshm, int argc, char *argv[], int first_cmd)
+shm_set_variables(SynapticsSHM *synshm, int argc, char *argv[], int first_cmd)
{
int i;
+ struct Parameter *par;
+ double val;
+
for (i = first_cmd; i < argc; i++) {
- char *cmd = argv[i];
- char *eqp = index(cmd, '=');
- if (eqp) {
- int j;
- int found = 0;
- *eqp = 0;
- for (j = 0; params[j].name; j++) {
- if (strcasecmp(cmd, params[j].name) == 0) {
- found = 1;
- break;
- }
- }
- if (found) {
- double val = atof(&eqp[1]);
- struct Parameter* par = ¶ms[j];
-
- if (val < par->min_val)
- val = par->min_val;
- if (val > par->max_val)
- val = par->max_val;
-
- switch (par->type) {
- case PT_INT:
- *(int*)((char*)synshm + par->offset) = (int)rint(val);
- break;
- case PT_BOOL:
- *(Bool*)((char*)synshm + par->offset) = (Bool)rint(val);
- break;
- case PT_DOUBLE:
- *(double*)((char*)synshm + par->offset) = val;
- break;
- }
- } else {
- printf("Unknown parameter %s\n", cmd);
- }
- } else {
- printf("Invalid command: %s\n", cmd);
+ val = parse_cmd(argv[i], &par);
+
+ if (!par)
+ continue;
+
+ switch (par->type) {
+ case PT_INT:
+ *(int*)((char*)synshm + par->offset) = (int)rint(val);
+ break;
+ case PT_BOOL:
+ *(Bool*)((char*)synshm + par->offset) = (Bool)rint(val);
+ break;
+ case PT_DOUBLE:
+ *(double*)((char*)synshm + par->offset) = val;
+ break;
}
}
}
@@ -248,7 +343,7 @@
}
static void
-monitor(SynapticsSHM *synshm, int delay)
+shm_monitor(SynapticsSHM *synshm, int delay)
{
int header = 0;
SynapticsSHM old;
@@ -284,13 +379,300 @@
}
}
+/** Init and return SHM area or NULL on error */
+static SynapticsSHM*
+shm_init()
+{
+ SynapticsSHM *synshm = NULL;
+ int shmid = 0;
+
+ if ((shmid = shmget(SHM_SYNAPTICS, sizeof(SynapticsSHM), 0)) == -1) {
+ if ((shmid = shmget(SHM_SYNAPTICS, 0, 0)) == -1)
+ fprintf(stderr, "Can't access shared memory area. SHMConfig disabled?\n");
+ else
+ fprintf(stderr, "Incorrect size of shared memory area. Incompatible driver version?\n");
+ } else if ((synshm = (SynapticsSHM*) shmat(shmid, NULL, 0)) == NULL)
+ perror("shmat");
+
+ return synshm;
+}
+
+
+/** Init display connection or NULL on error */
+static Display*
+dp_init()
+{
+ Display *dpy = NULL;
+ XExtensionVersion *v = NULL;
+ Atom touchpad_type = 0;
+ Atom synaptics_property = 0;
+ int error = 0;
+
+ dpy = XOpenDisplay(NULL);
+ if (!dpy) {
+ fprintf(stderr, "Failed to connect to X Server.\n");
+ error = 1;
+ goto unwind;
+ }
+
+ v = XGetExtensionVersion(dpy, INAME);
+ if (!v->present ||
+ (v->major_version * 1000 + v->minor_version) < (XI_Add_DeviceProperties_Major * 1000
+ + XI_Add_DeviceProperties_Minor)) {
+ fprintf(stderr, "X server supports X Input %d.%d. I need %d.%d.\n",
+ v->major_version, v->minor_version,
+ XI_Add_DeviceProperties_Major,
+ XI_Add_DeviceProperties_Minor);
+ error = 1;
+ goto unwind;
+ }
+
+ /* We know synaptics sets XI_TOUCHPAD for all the devices. */
+ touchpad_type = XInternAtom(dpy, XI_TOUCHPAD, True);
+ if (!touchpad_type) {
+ fprintf(stderr, "XI_TOUCHPAD not initialised.\n");
+ error = 1;
+ goto unwind;
+ }
+
+ synaptics_property = XInternAtom(dpy, SYNAPTICS_PROP_EDGES, True);
+ if (!synaptics_property) {
+ fprintf(stderr, "Couldn't find synaptics properties. No synaptics "
+ "driver loaded?\n");
+ error = 1;
+ goto unwind;
+ }
+
+unwind:
+ XFree(v);
+ if (error)
+ {
+ XCloseDisplay(dpy);
+ dpy = NULL;
+ }
+ return dpy;
+}
+
+static XDevice *
+dp_get_device(Display *dpy)
+{
+ XDevice* dev = NULL;
+ XDeviceInfo *info = NULL;
+ int ndevices = 0;
+ Atom touchpad_type = 0;
+ Atom synaptics_property = 0;
+ Atom *properties = NULL;
+ int nprops = 0;
+ int error = 0;
+
+ touchpad_type = XInternAtom(dpy, XI_TOUCHPAD, True);
+ synaptics_property = XInternAtom(dpy, SYNAPTICS_PROP_EDGES, True);
+ info = XListInputDevices(dpy, &ndevices);
+
+ while(ndevices--) {
+ if (info[ndevices].type == touchpad_type) {
+ dev = XOpenDevice(dpy, info[ndevices].id);
+ if (!dev) {
+ fprintf(stderr, "Failed to open device '%s'.\n",
+ info[ndevices].name);
+ error = 1;
+ goto unwind;
+ }
+
+ properties = XListDeviceProperties(dpy, dev, &nprops);
+ if (!properties || !nprops)
+ {
+ fprintf(stderr, "No properties on device '%s'.\n",
+ info[ndevices].name);
+ error = 1;
+ goto unwind;
+ }
+
+ while(nprops--)
+ {
+ if (properties[nprops] == synaptics_property)
+ break;
+ }
+ if (!nprops)
+ {
+ fprintf(stderr, "No synaptics properties on device '%s'.\n",
+ info[ndevices].name);
+ error = 1;
+ goto unwind;
+ }
+
+ break; /* Yay, device is suitable */
+ }
+ }
+
+unwind:
+ XFree(properties);
+ XFreeDeviceList(info);
+ if (error && dev)
+ {
+ XCloseDevice(dpy, dev);
+ dev = NULL;
+ }
+ return dev;
+}
+
+static void
+dp_set_variables(Display *dpy, XDevice* dev, int argc, char *argv[], int first_cmd)
+{
+ int i;
+ double val;
+ struct Parameter *par;
+ Atom prop, type, float_type;
+ int format;
+ unsigned char* data;
+ unsigned long nitems, bytes_after;
+
+ float *f;
+ int *n;
+ char *b;
+
+ float_type = XInternAtom(dpy, XATOM_FLOAT, True);
+ if (!float_type)
+ fprintf(stderr, "Float properties not available.\n");
+
+ for (i = first_cmd; i < argc; i++) {
+ val = parse_cmd(argv[i], &par);
+ if (!par)
+ continue;
+
+ prop = XInternAtom(dpy, par->prop_name, True);
+ if (!prop)
+ {
+ fprintf(stderr, "Property for '%s' not available. Skipping.\n",
+ par->name);
+ continue;
+
+ }
+
+ XGetDeviceProperty(dpy, dev, prop, 0, 1000, False, AnyPropertyType,
+ &type, &format, &nitems, &bytes_after, &data);
+
+ switch(par->prop_format)
+ {
+ case 8:
+ if (format != par->prop_format || type != XA_INTEGER) {
+ fprintf(stderr, " %-23s = format mismatch (%d)\n",
+ par->name, format);
+ break;
+ }
+ b = (char*)data;
+ b[par->prop_offset] = rint(val);
+ break;
+ case 32:
+ if (format != par->prop_format || type != XA_INTEGER) {
+ fprintf(stderr, " %-23s = format mismatch (%d)\n",
+ par->name, format);
+ break;
+ }
+ n = (int*)data;
+ n[par->prop_offset] = rint(val);
+ break;
+ case 0: /* float */
+ if (!float_type)
+ continue;
+ if (format != 32 || type != float_type) {
+ fprintf(stderr, " %-23s = format mismatch (%d)\n",
+ par->name, format);
+ break;
+ }
+ f = (float*)data;
+ f[par->prop_offset] = val;
+ break;
+ }
+
+ XChangeDeviceProperty(dpy, dev, prop, type, format,
+ PropModeReplace, data, nitems);
+ XFlush(dpy);
+ }
+}
+
+/* FIXME: horribly inefficient. */
+static void
+dp_show_settings(Display *dpy, XDevice *dev)
+{
+ int j;
+ Atom a, type, float_type;
+ int format;
+ unsigned long nitems, bytes_after;
+ unsigned char* data;
+ int len;
+
+ float *f;
+ int *i;
+ char *b;
+
+ float_type = XInternAtom(dpy, XATOM_FLOAT, True);
+ if (!float_type)
+ fprintf(stderr, "Float properties not available.\n");
+
+ printf("Parameter settings:\n");
+ for (j = 0; params[j].name; j++) {
+ struct Parameter *par = ¶ms[j];
+ a = XInternAtom(dpy, par->prop_name, True);
+ if (!a) {
+ fprintf(stderr, " %-23s = missing\n",
+ par->name);
+ continue;
+ }
+
+ len = 1 + ((par->prop_offset * (par->prop_format ? par->prop_format : 32)/8))/4;
+
+ XGetDeviceProperty(dpy, dev, a, 0, len, False,
+ AnyPropertyType, &type, &format,
+ &nitems, &bytes_after, &data);
+
+ switch(par->prop_format) {
+ case 8:
+ if (format != par->prop_format || type != XA_INTEGER) {
+ fprintf(stderr, " %-23s = format mismatch (%d)\n",
+ par->name, format);
+ break;
+ }
+
+ b = (char*)data;
+ printf(" %-23s = %d\n", par->name, b[par->prop_offset]);
+ break;
+ case 32:
+ if (format != par->prop_format || type != XA_INTEGER) {
+ fprintf(stderr, " %-23s = format mismatch (%d)\n",
+ par->name, format);
+ break;
+ }
+
+ i = (int*)data;
+ printf(" %-23s = %d\n", par->name, i[par->prop_offset]);
+ break;
+ case 0: /* Float */
+ if (!float_type)
+ continue;
+ if (format != 32 || type != float_type) {
+ fprintf(stderr, " %-23s = format mismatch (%d)\n",
+ par->name, format);
+ break;
+ }
+
+ f = (float*)data;
+ printf(" %-23s = %g\n", par->name, f[par->prop_offset]);
+ break;
+ }
+
+ XFree(data);
+ }
+}
+
static void
usage(void)
{
- fprintf(stderr, "Usage: synclient [-m interval] [-h] [-l] [-V] [-?] [var1=value1 [var2=value2] ...]\n");
- fprintf(stderr, " -m monitor changes to the touchpad state.\n"
+ fprintf(stderr, "Usage: synclient [-s] [-m interval] [-h] [-l] [-V] [-?] [var1=value1 [var2=value2] ...]\n");
+ fprintf(stderr, " -s Use SHM area instead of device properties.\n");
+ fprintf(stderr, " -m monitor changes to the touchpad state (implies -s)\n"
" interval specifies how often (in ms) to poll the touchpad state\n");
- fprintf(stderr, " -h Show detected hardware properties\n");
+ fprintf(stderr, " -h Show detected hardware properties (implies -s)\n");
fprintf(stderr, " -l List current user settings\n");
fprintf(stderr, " -V Print synclient version string and exit\n");
fprintf(stderr, " -? Show this help message\n");
@@ -301,25 +683,28 @@
int
main(int argc, char *argv[])
{
- SynapticsSHM *synshm;
- int shmid;
-
int c;
int delay = -1;
int do_monitor = 0;
int dump_hw = 0;
int dump_settings = 0;
+ int use_shm = 0;
int first_cmd;
/* Parse command line parameters */
- while ((c = getopt(argc, argv, "m:hlV")) != -1) {
+ while ((c = getopt(argc, argv, "sm:hlV")) != -1) {
switch (c) {
+ case 's':
+ use_shm = 1;
+ break;
case 'm':
+ use_shm = 1;
do_monitor = 1;
if ((delay = atoi(optarg)) < 0)
usage();
break;
case 'h':
+ use_shm = 1;
dump_hw = 1;
break;
case 'l':
@@ -337,31 +722,40 @@
usage();
/* Connect to the shared memory area */
- if ((shmid = shmget(SHM_SYNAPTICS, sizeof(SynapticsSHM), 0)) == -1) {
- if ((shmid = shmget(SHM_SYNAPTICS, 0, 0)) == -1) {
- fprintf(stderr, "Can't access shared memory area. SHMConfig disabled?\n");
- exit(1);
- } else {
- fprintf(stderr, "Incorrect size of shared memory area. Incompatible driver version?\n");
- exit(1);
- }
- }
- if ((synshm = (SynapticsSHM*) shmat(shmid, NULL, 0)) == NULL) {
- perror("shmat");
- exit(1);
- }
+ if (use_shm)
+ {
+ SynapticsSHM *synshm = NULL;
+
+ synshm = shm_init();
+ if (!synshm)
+ return 1;
+
+ /* Perform requested actions */
+ if (dump_hw)
+ shm_show_hw_info(synshm);
+
+ shm_set_variables(synshm, argc, argv, first_cmd);
+
+ if (dump_settings)
+ shm_show_settings(synshm);
+ if (do_monitor)
+ shm_monitor(synshm, delay);
+ } else /* Device properties */
+ {
+ Display *dpy;
+ XDevice *dev;
+
+ dpy = dp_init();
+ if (!dpy || !(dev = dp_get_device(dpy)))
+ return 1;
+
+ dp_set_variables(dpy, dev, argc, argv, first_cmd);
+ if (dump_settings)
+ dp_show_settings(dpy, dev);
- /* Perform requested actions */
- if (dump_hw) {
- show_hw_info(synshm);
- }
- set_variables(synshm, argc, argv, first_cmd);
- if (dump_settings) {
- show_settings(synshm);
- }
- if (do_monitor) {
- monitor(synshm, delay);
+ XCloseDevice(dpy, dev);
+ XCloseDisplay(dpy);
}
- exit(0);
+ return 0;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-synaptics-1.0.0/tools/syndaemon.c new/xf86-input-synaptics-1.0.99.2/tools/syndaemon.c
--- old/xf86-input-synaptics-1.0.0/tools/syndaemon.c 2009-02-01 23:36:56.000000000 +0100
+++ new/xf86-input-synaptics-1.0.99.2/tools/syndaemon.c 2009-02-26 05:20:07.000000000 +0100
@@ -29,6 +29,11 @@
#endif
#include
+#ifdef HAVE_XRECORD
+#include
+#include
+#endif /* HAVE_XRECORD */
+
#include
#include
#include
@@ -45,6 +50,7 @@
static int pad_disabled;
static int disable_taps_only;
static int ignore_modifier_combos;
+static int ignore_modifier_keys;
static int background;
static const char *pid_file;
@@ -64,6 +70,7 @@
fprintf(stderr, " -t Only disable tapping and scrolling, not mouse movements.\n");
fprintf(stderr, " -k Ignore modifier keys when monitoring keyboard activity.\n");
fprintf(stderr, " -K Like -k but also ignore Modifier+Key combos.\n");
+ fprintf(stderr, " -R Don't use the XRecord extension.\n");
exit(1);
}
@@ -243,6 +250,194 @@
}
}
+/* ---- the following code is for using the xrecord extension ----- */
+#ifdef HAVE_XRECORD
+
+#define MAX_MODIFIERS 16
+
+/* used for exchanging information with the callback function */
+struct xrecord_callback_results {
+ XModifierKeymap *modifiers;
+ Bool key_event;
+ Bool non_modifier_event;
+ KeyCode pressed_modifiers[MAX_MODIFIERS];
+};
+
+/* test if the xrecord extension is found */
+Bool check_xrecord(Display *display) {
+
+ Bool found;
+ Status status;
+ int major_opcode, minor_opcode, first_error;
+ int version[2];
+
+ found = XQueryExtension(display,
+ "RECORD",
+ &major_opcode,
+ &minor_opcode,
+ &first_error);
+
+ status = XRecordQueryVersion(display, version, version+1);
+ if (!background && status) {
+ printf("X RECORD extension version %d.%d\n", version[0], version[1]);
+ }
+ return found;
+}
+
+/* called by XRecordProcessReplies() */
+void xrecord_callback( XPointer closure, XRecordInterceptData* recorded_data) {
+
+ struct xrecord_callback_results *cbres;
+ xEvent *xev;
+ int nxev;
+
+ cbres = (struct xrecord_callback_results *)closure;
+
+ if (recorded_data->category != XRecordFromServer) {
+ XRecordFreeData(recorded_data);
+ return;
+ }
+
+ nxev = recorded_data->data_len / 8;
+ xev = (xEvent *)recorded_data->data;
+ while(nxev--) {
+
+ if ( (xev->u.u.type == KeyPress) || (xev->u.u.type == KeyRelease)) {
+ int i;
+ int is_modifier = 0;
+
+ cbres->key_event = 1; /* remember, a key was pressed or released. */
+
+ /* test if it was a modifier */
+ for (i = 0; i < 8 * cbres->modifiers->max_keypermod; i++) {
+ KeyCode kc = cbres->modifiers->modifiermap[i];
+
+ if (kc == xev->u.u.detail) {
+ is_modifier = 1; /* yes, it is a modifier. */
+ break;
+ }
+ }
+
+ if (is_modifier) {
+ if (xev->u.u.type == KeyPress) {
+ for (i=0; i < MAX_MODIFIERS; ++i)
+ if (!cbres->pressed_modifiers[i]) {
+ cbres->pressed_modifiers[i] = xev->u.u.detail;
+ break;
+ }
+ } else { /* KeyRelease */
+ for (i=0; i < MAX_MODIFIERS; ++i)
+ if (cbres->pressed_modifiers[i] == xev->u.u.detail)
+ cbres->pressed_modifiers[i] = 0;
+ }
+
+ } else {
+ /* remember, a non-modifier was pressed. */
+ cbres->non_modifier_event = 1;
+ }
+ }
+
+ xev++;
+ }
+
+ XRecordFreeData(recorded_data); /* cleanup */
+}
+
+static int is_modifier_pressed(const struct xrecord_callback_results *cbres) {
+ int i;
+
+ for (i = 0; i < MAX_MODIFIERS; ++i)
+ if (cbres->pressed_modifiers[i])
+ return 1;
+
+ return 0;
+}
+
+void record_main_loop(Display* display, double idle_time) {
+
+ struct xrecord_callback_results cbres;
+ XRecordContext context;
+ XRecordClientSpec cspec = XRecordAllClients;
+ Display *dpy_data;
+ XRecordRange *range;
+ int i;
+
+ pad_disabled = 0;
+
+ dpy_data = XOpenDisplay(NULL); /* we need an additional data connection. */
+ range = XRecordAllocRange();
+
+ range->device_events.first = KeyPress;
+ range->device_events.last = KeyRelease;
+
+ context = XRecordCreateContext(dpy_data, 0,
+ &cspec,1,
+ &range, 1);
+
+ XRecordEnableContextAsync(dpy_data, context, xrecord_callback, (XPointer)&cbres);
+
+ cbres.modifiers = XGetModifierMapping(display);
+ /* clear list of modifiers */
+ for (i = 0; i < MAX_MODIFIERS; ++i)
+ cbres.pressed_modifiers[i] = 0;
+
+ while (1) {
+
+ int fd = ConnectionNumber(dpy_data);
+ fd_set read_fds;
+ int ret;
+ int disable_event = 0;
+ struct timeval timeout;
+
+ FD_ZERO(&read_fds);
+ FD_SET(fd, &read_fds);
+
+ ret = select(fd+1 /* =(max descriptor in read_fds) + 1 */,
+ &read_fds, NULL, NULL,
+ pad_disabled ? &timeout : NULL /* timeout only required for enabling */ );
+
+ if (FD_ISSET(fd, &read_fds)) {
+
+ cbres.key_event = 0;
+ cbres.non_modifier_event = 0;
+
+ XRecordProcessReplies(dpy_data);
+
+ if (!ignore_modifier_keys && cbres.key_event) {
+ disable_event = 1;
+ }
+
+ if (cbres.non_modifier_event &&
+ !(ignore_modifier_combos && is_modifier_pressed(&cbres)) ) {
+ disable_event = 1;
+ }
+ }
+
+ if (disable_event) {
+ /* adjust the enable_time */
+ timeout.tv_sec = (int)idle_time;
+ timeout.tv_usec = (idle_time-(double)timeout.tv_sec) * 1.e6;
+
+ if (!pad_disabled) {
+ pad_disabled=1;
+ if (!background) printf("disable touchpad\n");
+
+ if (!synshm->touchpad_off)
+ synshm->touchpad_off = disable_taps_only ? 2 : 1;
+ }
+ }
+
+ if (ret == 0 && pad_disabled) { /* timeout => enable event */
+ enable_touchpad();
+ if (!background) printf("enable touchpad\n");
+ }
+
+ } /* end while(1) */
+
+ XFreeModifiermap(cbres.modifiers);
+}
+#endif /* HAVE_XRECORD */
+
int
main(int argc, char *argv[])
{
@@ -251,10 +446,11 @@
Display *display;
int c;
int shmid;
- int ignore_modifier_keys = 0;
+ int use_xrecord = 1;
+
/* Parse command line parameters */
- while ((c = getopt(argc, argv, "i:m:dtp:kK?")) != EOF) {
+ while ((c = getopt(argc, argv, "i:m:dtp:kKR?")) != EOF) {
switch(c) {
case 'i':
idle_time = atof(optarg);
@@ -278,6 +474,9 @@
ignore_modifier_combos = 1;
ignore_modifier_keys = 1;
break;
+ case 'R':
+ use_xrecord = 0;
+ break;
default:
usage();
break;
@@ -333,11 +532,16 @@
fclose(fd);
}
}
-
- setup_keyboard_mask(display, ignore_modifier_keys);
-
- /* Run the main loop */
- main_loop(display, idle_time, poll_delay);
-
+#ifdef HAVE_XRECORD
+ if (use_xrecord && check_xrecord(display)) {
+ record_main_loop(display, idle_time);
+ } else
+#endif /* HAVE_XRECORD */
+ {
+ setup_keyboard_mask(display, ignore_modifier_keys);
+
+ /* Run the main loop */
+ main_loop(display, idle_time, poll_delay);
+ }
return 0;
}
++++++ xf86-input-synaptics-settings.diff ++++++
diff -u -r -p ../xf86-input-synaptics-1.0.99.2.orig//src/synaptics.c ./src/synaptics.c
--- ../xf86-input-synaptics-1.0.99.2.orig//src/synaptics.c 2009-02-27 21:43:48.469262019 +0100
+++ ./src/synaptics.c 2009-02-27 21:57:39.914406752 +0100
@@ -394,10 +394,16 @@ static void set_default_parameters(Local
emulateTwoFingerMinW = 7;
}
+#if 0
/* Enable tap if we don't have a phys left button */
tapButton1 = priv->has_left ? 0 : 1;
tapButton2 = priv->has_left ? 0 : 3;
tapButton3 = priv->has_left ? 0 : 2;
+#else
+ tapButton1 = 1;
+ tapButton2 = 3;
+ tapButton3 = 2;
+#endif
/* Enable multifinger-click if we don't have right/middle button,
otherwise clickFinger is always button 1. */
@@ -405,8 +411,12 @@ static void set_default_parameters(Local
clickFinger2 = priv->has_right ? 1 : 3;
clickFinger3 = priv->has_middle ? 1 : 2;
+#if 0
/* Enable vert edge scroll if we can't detect doubletap */
vertEdgeScroll = priv->has_double ? FALSE : TRUE;
+#else
+ vertEdgeScroll = TRUE;
+#endif
horizEdgeScroll = FALSE;
/* Enable twofinger scroll if we can detect doubletap */
@@ -430,8 +440,8 @@ static void set_default_parameters(Local
pars->emulate_mid_button_time = xf86SetIntOption(opts, "EmulateMidButtonTime", 75);
pars->emulate_twofinger_z = xf86SetIntOption(opts, "EmulateTwoFingerMinZ", emulateTwoFingerMinZ);
pars->emulate_twofinger_w = xf86SetIntOption(opts, "EmulateTwoFingerMinW", emulateTwoFingerMinW);
- pars->scroll_dist_vert = xf86SetIntOption(opts, "VertScrollDelta", horizScrollDelta);
- pars->scroll_dist_horiz = xf86SetIntOption(opts, "HorizScrollDelta", vertScrollDelta);
+ pars->scroll_dist_vert = xf86SetIntOption(opts, "VertScrollDelta", vertScrollDelta);
+ pars->scroll_dist_horiz = xf86SetIntOption(opts, "HorizScrollDelta", horizScrollDelta);
pars->scroll_edge_vert = xf86SetBoolOption(opts, "VertEdgeScroll", vertEdgeScroll);
if (xf86CheckIfOptionUsedByName(opts, "RightEdge")) {
pars->special_scroll_area_right = FALSE;
++++++ xf86-input-tek4957.diff ++++++
commit 2cffb15678a8c7ef3709fa9e343d5961ae3919eb
Author: Peter Hutterer
Date: Mon May 26 22:21:39 2008 +0930
Check for XINPUT ABI 3.
diff --git a/src/xf86Tek4957.c b/src/xf86Tek4957.c
index 5877269..de9ee83 100644
--- a/src/xf86Tek4957.c
+++ b/src/xf86Tek4957.c
@@ -446,7 +446,10 @@ TekProc(DeviceIntPtr pDev, int what)
return !Success;
}
- if (InitValuatorClassDeviceStruct(pDev,2,xf86GetMotionEvents,
+ if (InitValuatorClassDeviceStruct(pDev,2,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
+ xf86GetMotionEvents,
+#endif
local->history_size,Absolute)== FALSE) {
xf86Msg(X_ERROR,"Tek4957:Unable to allocate Valuator class device\n");
return !Success;
commit 033361925bf0f4257271e45cab528a2506ba09fb
Author: Julien Cristau
Date: Sun Jun 1 00:59:11 2008 +0200
Fix compiler warning: don't use deprecated calls for newer XInput ABIS.
diff --git a/src/xf86Tek4957.c b/src/xf86Tek4957.c
index de9ee83..110de77 100644
--- a/src/xf86Tek4957.c
+++ b/src/xf86Tek4957.c
@@ -152,7 +152,11 @@ TekConvert(LocalDevicePtr local,
/* Gets current screen size. It can change dynamically in the case of
a multi-head configuration with different screen sizes ... */
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) == 0
SP=miPointerCurrentScreen();
+#else
+ SP=miPointerGetScreen(local->dev);
+#endif
W=SP->width;
H=SP->height;
++++++ xf86-input-ur98.diff ++++++
commit 23736802e6831bd42f2597e0dd3af3acf97242f8
Author: Peter Hutterer
Date: Mon May 26 22:23:03 2008 +0930
Check for XINPUT ABI 3.
diff --git a/src/xf86Ur-98.c b/src/xf86Ur-98.c
index dabf3ca..2b148b0 100644
--- a/src/xf86Ur-98.c
+++ b/src/xf86Ur-98.c
@@ -49,7 +49,9 @@ static const char *reqSymbols[] = {
"xf86CollectInputOptions",
"xf86ErrorFVerb",
"xf86FindOptionValue",
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
"xf86GetMotionEvents",
+#endif
"xf86GetVerbosity",
"xf86MotionHistoryAllocate",
"xf86NameCmp",
@@ -316,7 +318,10 @@ xf86UR98Control(DeviceIntPtr dev,
* screen to fit one meter.
*/
- if (InitValuatorClassDeviceStruct(dev, priv->axes, xf86GetMotionEvents,
+ if (InitValuatorClassDeviceStruct(dev, priv->axes,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
+ xf86GetMotionEvents,
+#endif
local->history_size, Absolute) == FALSE) {
ErrorF("Unable to allocate ValuatorClassDeviceStruct\n");
return !Success;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org