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