rpms/xorg-x11-drv-synaptics/devel xf86-input-synaptics-0.15.0-edges.patch, NONE, 1.1 xorg-x11-drv-synaptics.spec, 1.2, 1.3

Peter Hutterer whot at fedoraproject.org
Thu Aug 28 13:26:57 UTC 2008


Author: whot

Update of /cvs/pkgs/rpms/xorg-x11-drv-synaptics/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv15925

Modified Files:
	xorg-x11-drv-synaptics.spec 
Added Files:
	xf86-input-synaptics-0.15.0-edges.patch 
Log Message:
* Thu Aug 28 2008 Peter Hutterer <peter.hutterer at redhat.com> 0.15.0-3
- xf86-input-synaptics-0.15.0-edges.patch: reserve 5% on each side for edge
  detection.



xf86-input-synaptics-0.15.0-edges.patch:

--- NEW FILE xf86-input-synaptics-0.15.0-edges.patch ---
>From fb5d8d6adea29f3b7131e3f4897d9c45572c33be Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer at redhat.com>
Date: Thu, 28 Aug 2008 21:58:01 +0930
Subject: [PATCH] Leave 5% on each side for edge detection.

Edge detection only works if the coordinates are < or > than the configured
edge. Let's move all edges in by 5% from the autodetected ranges to ease edge
detection.

Conflicts:

	src/synapticsstr.h
---
 src/eventcomm.c |   12 ++++++------
 src/synaptics.c |   27 +++++++++++++++++----------
 src/synaptics.h |    1 +
 3 files changed, 24 insertions(+), 16 deletions(-)

diff --git a/src/eventcomm.c b/src/eventcomm.c
index 3d3e6cf..14c9cab 100644
--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -106,11 +106,11 @@ event_query_is_touchpad(int fd)
     return TRUE;
 }
 
-/* Query device for axis ranges and store outcome in the default parameter. */
+/* Query device for axis ranges */
 static void
 event_query_axis_ranges(int fd, LocalDevicePtr local)
 {
-    SynapticsSHM *pars = &((SynapticsPrivate *)local->private)->synpara_default;
+    SynapticsPrivate *priv = (SynapticsPrivate *)local->private;
     struct input_absinfo abs;
     int rc;
 
@@ -119,8 +119,8 @@ event_query_axis_ranges(int fd, LocalDevicePtr local)
     {
 	xf86Msg(X_INFO, "%s: x-axis range %d - %d\n", local->name,
 		abs.minimum, abs.maximum);
-	pars->left_edge  = abs.minimum;
-	pars->right_edge = abs.maximum;
+	priv->minx = abs.minimum;
+	priv->maxx = abs.maximum;
     } else
 	xf86Msg(X_ERROR, "%s: failed to query axis range (%s)\n", local->name,
 		strerror(errno));
@@ -130,8 +130,8 @@ event_query_axis_ranges(int fd, LocalDevicePtr local)
     {
 	xf86Msg(X_INFO, "%s: y-axis range %d - %d\n", local->name,
 		abs.minimum, abs.maximum);
-	pars->top_edge    = abs.minimum;
-	pars->bottom_edge = abs.maximum;
+	priv->miny = abs.minimum;
+	priv->maxy = abs.maximum;
     } else
 	xf86Msg(X_ERROR, "%s: failed to query axis range (%s)\n", local->name,
 		strerror(errno));
diff --git a/src/synaptics.c b/src/synaptics.c
index de9fc1a..50ebec6 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -294,6 +294,7 @@ SynapticsPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
     char *repeater;
     pointer opts;
     int status;
+    int ewidth, eheight; /* edge width/height */
 
     /* allocate memory for SynapticsPrivateRec */
     priv = xcalloc(1, sizeof(SynapticsPrivate));
@@ -336,13 +337,13 @@ SynapticsPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
 
     xf86OptionListReport(opts);
 
-    /* set hard-coded axis ranges before querying the device.
+    /* set default axis ranges before querying the device.
      * These defaults are overwritten with the ones provided by the device
      * during SetDeviceAndProtocol (if applicable). */
-    priv->synpara_default.left_edge   = 1900;
-    priv->synpara_default.right_edge  = 5400;
-    priv->synpara_default.top_edge    = 1900;
-    priv->synpara_default.bottom_edge = 4000;
+    priv->minx = 1900;
+    priv->maxx = 5400;
+    priv->miny = 1900;
+    priv->maxy = 4000;
 
     SetDeviceAndProtocol(local);
 
@@ -370,11 +371,17 @@ SynapticsPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
     /* read the parameters */
     pars = &priv->synpara_default;
     pars->version = (PACKAGE_VERSION_MAJOR*10000+PACKAGE_VERSION_MINOR*100+PACKAGE_VERSION_PATCHLEVEL);
-    /* pars->xyz_edge contains defaults or values reported by hardware*/
-    pars->left_edge = xf86SetIntOption(opts, "LeftEdge", pars->left_edge);
-    pars->right_edge = xf86SetIntOption(opts, "RightEdge", pars->right_edge);
-    pars->top_edge = xf86SetIntOption(opts, "TopEdge", pars->top_edge);
-    pars->bottom_edge = xf86SetIntOption(opts, "BottomEdge", pars->bottom_edge);
+
+
+    /* 5% on each side is reserved for edge detection, unless the user
+     * explicitly specifed an edge range */
+    ewidth = abs(priv->maxx - priv->minx) * .05;
+    eheight = abs(priv->maxy - priv->miny) * .05;
+
+    pars->left_edge = xf86SetIntOption(opts, "LeftEdge", priv->minx + ewidth);
+    pars->right_edge = xf86SetIntOption(opts, "RightEdge", priv->maxx - ewidth);
+    pars->top_edge = xf86SetIntOption(opts, "TopEdge", priv->miny + ewidth);
+    pars->bottom_edge = xf86SetIntOption(opts, "BottomEdge", priv->maxy - eheight);
 
     pars->finger_low = xf86SetIntOption(opts, "FingerLow", 25);
     pars->finger_high = xf86SetIntOption(opts, "FingerHigh", 30);
diff --git a/src/synaptics.h b/src/synaptics.h
index d1f8772..a24f8b6 100644
--- a/src/synaptics.h
+++ b/src/synaptics.h
@@ -270,6 +270,7 @@ typedef struct _SynapticsPrivateRec
     int prev_z;				/* previous z value, for palm detection */
     int avg_width;			/* weighted average of previous fingerWidth values */
 
+    int minx, maxx, miny, maxy;         /* min/max dimensions as detected */
 } SynapticsPrivate;
 
 
-- 
1.5.6.4



Index: xorg-x11-drv-synaptics.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-synaptics/devel/xorg-x11-drv-synaptics.spec,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- xorg-x11-drv-synaptics.spec	25 Aug 2008 09:03:29 -0000	1.2
+++ xorg-x11-drv-synaptics.spec	28 Aug 2008 13:26:26 -0000	1.3
@@ -5,7 +5,7 @@
 Name:           xorg-x11-drv-synaptics
 Summary:        Xorg X11 synaptics input driver
 Version:        0.15.0
-Release:        2%{?dist}
+Release:        3%{?dist}
 URL:            http://www.x.org
 License:        MIT
 Group:          User Interface/X Hardware Support
@@ -14,6 +14,7 @@
 Source0:        ftp://ftp.x.org/pub/individual/driver/%{tarball}-%{version}.tar.bz2
 Source1:        10-synaptics.fdi
 Patch1:		 xf86-input-synaptics-0.15.0-tap.patch
+Patch2:		 xf86-input-synaptics-0.15.0-edges.patch
 ExcludeArch:    s390 s390x
 
 BuildRequires:  libtool pkgconfig
@@ -59,6 +60,7 @@
 %prep
 %setup -q -n %{tarball}-%{version}
 %patch1 -p1 -b .tap
+%patch2 -p1 -b .edges
 
 %build
 autoreconf -v --install --force || exit 1
@@ -92,6 +94,10 @@
 %doc COPYING README
 
 %changelog
+* Thu Aug 28 2008 Peter Hutterer <peter.hutterer at redhat.com> 0.15.0-3
+- xf86-input-synaptics-0.15.0-edges.patch: reserve 5% on each side for edge
+  detection.
+
 * Mon Aug 25 2008 Adel Gadllah <adel.gadllah at gmail.com> 0.15.0-2
 - Enable tapping RH #439386
 




More information about the fedora-extras-commits mailing list