xserver-xorg-input-synaptics: Changes to 'upstream-experimental'
configure.ac |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit 3261e07c923c449f08a96a8439c97479b7ff899c Author: Peter HuttererDate: Fri Nov 18 13:00:09 2016 +1000 synaptics 1.9.0 Signed-off-by: Peter Hutterer diff --git a/configure.ac b/configure.ac index 970dd5f..6d814d5 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-input-synaptics], -[1.8.99.2], +[1.9.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-input-synaptics]) AC_CONFIG_SRCDIR([Makefile.am])
xserver-xorg-input-synaptics: Changes to 'upstream-experimental'
conf/50-synaptics.conf | 46 --- conf/70-synaptics.conf | 46 +++ conf/Makefile.am |2 configure.ac |9 docs/tapndrag.dia | 522 +++-- include/synaptics-properties.h |2 man/synaptics.man |5 src/eventcomm.c| 140 -- src/eventcomm.h|2 src/properties.c |1 src/ps2comm.c |3 src/ps2comm.h |2 src/synaptics.c| 237 ++ src/synapticsstr.h |9 src/synproto.h |2 tools/synclient.c |1 tools/syndaemon.c | 50 ++- 17 files changed, 596 insertions(+), 483 deletions(-) New commits: commit a7d76f4275a88d98b18eed29a1ee94a70e7fa367 Author: Peter HuttererDate: Sun Oct 9 19:27:47 2016 +1000 synaptics 1.8.99.2 Signed-off-by: Peter Hutterer diff --git a/configure.ac b/configure.ac index b3d0545..970dd5f 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-input-synaptics], -[1.8.99.1], +[1.8.99.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-input-synaptics]) AC_CONFIG_SRCDIR([Makefile.am]) commit 35b9472a189c88415fed137fb4c62a5081caaea5 Author: Peter Hutterer Date: Thu Sep 15 13:47:09 2016 +1000 Remove unused fraction calculations hw.x and the motion history are integers so our deltas are always integers. It's a bit pointless to split them into the fractional and integral part. obsolete since defc1d008e5674306a or so Signed-off-by: Peter Hutterer diff --git a/src/synaptics.c b/src/synaptics.c index bdc9605..c7ba9ad 100644 --- a/src/synaptics.c +++ b/src/synaptics.c @@ -2198,28 +2198,8 @@ static void get_delta(SynapticsPrivate *priv, const struct SynapticsHwState *hw, enum EdgeType edge, double *dx, double *dy) { -double integral; -double tmpf; - *dx = hw->x - HIST(0).x; *dy = hw->y - HIST(0).y; - -/* report edge speed as synthetic motion. Of course, it would be - * cooler to report floats than to buffer, but anyway. */ - -/* FIXME: When these values go NaN, bad things happen. Root cause is unknown - * thus far though. */ -if (isnan(priv->frac_x)) -priv->frac_x = 0; -if (isnan(priv->frac_y)) -priv->frac_y = 0; - -tmpf = *dx + priv->frac_x; -priv->frac_x = modf(tmpf, ); -*dx = integral; -tmpf = *dy + priv->frac_y; -priv->frac_y = modf(tmpf, ); -*dy = integral; } /* Vector length, but not sqrt'ed, we only need it for comparison */ diff --git a/src/synapticsstr.h b/src/synapticsstr.h index 905b78b..33524e5 100644 --- a/src/synapticsstr.h +++ b/src/synapticsstr.h @@ -288,7 +288,6 @@ struct _SynapticsPrivateRec { Bool circ_scroll_on;/* Keeps track of currently active scroll modes */ Bool circ_scroll_vert; /* True: Generate vertical scroll events False: Generate horizontal events */ -double frac_x, frac_y; /* absolute -> relative fraction */ enum MidButtonEmulation mid_emu_state; /* emulated 3rd button */ int repeatButtons; /* buttons for repeat */ int nextRepeat; /* Time when to trigger next auto repeat event */ commit 486322116d70365c2e2a1d9f45830057fa03153e Author: Peter Hutterer Date: Wed Aug 17 11:32:12 2016 +1000 eventcomm: don't ever probe if a device is set If opening the fd fails we still need to fail the device. This is particularly the case when a device disappears before we can open it - the current code wouldn't exit but instead switch to auto-probe touchpad devices on the system. Signed-off-by: Peter Hutterer Reviewed-by: Hans de Goede diff --git a/src/eventcomm.c b/src/eventcomm.c index 9c9a036..f65d532 100644 --- a/src/eventcomm.c +++ b/src/eventcomm.c @@ -1009,13 +1009,13 @@ EventAutoDevProbe(InputInfoPtr pInfo, const char *device) if (!(pInfo->flags & XI86_SERVER_FD)) SYSCALL(close(fd)); - -/* if a device is set and not a touchpad (or already grabbed), - * we must return FALSE. Otherwise, we'll add a device that - * wasn't requested for and repeat - * f5687a6741a19ef3081e7fd83ac55f6df8bcd5c2. */ -return touchpad_found; } + +/* if a device is set and not a touchpad (or already grabbed), + * we must return FALSE. Otherwise, we'll add a device that + * wasn't requested for and repeat + * f5687a6741a19ef3081e7fd83ac55f6df8bcd5c2. */
xserver-xorg-input-synaptics: Changes to 'upstream-experimental'
conf/11-x11-synaptics.fdi | 12 ++ conf/50-synaptics.conf | 15 +++ configure.ac |5 - include/synaptics-properties.h |3 man/synaptics.man | 11 +- man/syndaemon.man |8 - src/Makefile.am|1 src/eventcomm.c| 192 + src/properties.c | 50 -- src/synaptics.c| 132 src/synapticsstr.h | 21 +++- src/synproto.h |4 tools/synclient.c |2 tools/syndaemon.c | 33 +-- 14 files changed, 249 insertions(+), 240 deletions(-) New commits: commit fd709900445e3cb9f31ce7e780bfa98ecb6dab9b Author: Peter Hutterer peter.hutte...@who-t.net Date: Tue Mar 18 07:28:44 2014 +1000 synaptics 1.7.99.1 Signed-off-by: Peter Hutterer peter.hutte...@who-t.net diff --git a/configure.ac b/configure.ac index 865d4b4..be6b7ad 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-input-synaptics], -[1.7.99], +[1.7.99.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-input-synaptics]) AC_CONFIG_SRCDIR([Makefile.am]) commit dc5474964d4ec73b5c324961026e1037bb344946 Author: Peter Hutterer peter.hutte...@who-t.net Date: Mon Mar 17 14:55:37 2014 +1000 If the touchpad is in TOUCHPAD_OFF mode, allow physical clicks Enabling clicks in off mode also allows for the new Lenovo *40 series to use the top software buttons while the touchpad is disabled. This benefits those that usually disable touchpads altogether but still need the buttons for the trackstick. This changes existing behaviour, but TouchpadOff was always intended to stop erroneous events while typing. Physical button presses are hard to trigger accidentally. On the touchpads that TouchpadOff concept was originally designed for the buttons are nowhere near the keyboard and are physically separated from the touchpad anyway. On Clickpads, triggering a physical click requires more force than accidentally touching the surface. https://bugs.freedesktop.org/show_bug.cgi?id=76156 Signed-off-by: Peter Hutterer peter.hutte...@who-t.net Reviewed-by: Hans de Goede hdego...@redhat.com diff --git a/man/synaptics.man b/man/synaptics.man index 97f0114..081ce12 100644 --- a/man/synaptics.man +++ b/man/synaptics.man @@ -261,9 +261,14 @@ Valid values are: .TS l l. 0 Touchpad is enabled -1 Touchpad is switched off +1 Touchpad is switched off (physical clicks still work) 2 Only tapping and scrolling is switched off .TE +When the touchpad is switched off, button events caused by a physical +button press are still interpreted. On a ClickPad, this includes +software-emulated middle and right buttons as defined by +the SoftButtonAreas setting. +.TP Property: Synaptics Off .TP .BI Option \*qLockedDrags\*q \*q boolean \*q diff --git a/src/synaptics.c b/src/synaptics.c index aeb1c57..07fd450 100644 --- a/src/synaptics.c +++ b/src/synaptics.c @@ -1934,7 +1934,8 @@ HandleTapProcessing(SynapticsPrivate * priv, struct SynapticsHwState *hw, enum EdgeType edge; int delay = 10; -if (priv-finger_state == FS_BLOCKED) +if (para-touchpad_off == TOUCHPAD_OFF || +priv-finger_state == FS_BLOCKED) return delay; touch = finger = FS_TOUCHED priv-finger_state == FS_UNTOUCHED; @@ -2349,7 +2350,9 @@ HandleScrolling(SynapticsPrivate * priv, struct SynapticsHwState *hw, SynapticsParameters *para = priv-synpara; int delay = 10; -if ((priv-synpara.touchpad_off == TOUCHPAD_TAP_OFF) || (priv-finger_state == FS_BLOCKED)) { +if (priv-synpara.touchpad_off == TOUCHPAD_TAP_OFF || +priv-synpara.touchpad_off == TOUCHPAD_OFF || +priv-finger_state == FS_BLOCKED) { stop_coasting(priv); priv-circ_scroll_on = FALSE; priv-vert_scroll_edge_on = FALSE; @@ -3080,12 +3083,6 @@ HandleState(InputInfoPtr pInfo, struct SynapticsHwState *hw, CARD32 now, Bool using_cumulative_coords = FALSE; Bool ignore_motion; -/* If touchpad is switched off, we skip the whole thing and return delay */ -if (para-touchpad_off == TOUCHPAD_OFF) { -UpdateTouchState(pInfo, hw); -return delay; -} - /* We need both and x/y, the driver can't handle just one of the two * yet. But since it's possible to hit a phys button on non-clickpads * without ever getting motion data first, we must continue with 0/0 for @@ -3124,8 +3121,8 @@ HandleState(InputInfoPtr pInfo, struct SynapticsHwState *hw, CARD32 now, current_button_area(para, hw-x, hw-y) == NO_BUTTON_AREA) priv-last_button_area = NO_BUTTON_AREA; -ignore_motion = -!using_cumulative_coords
xserver-xorg-input-synaptics: Changes to 'upstream-experimental'
Rebased ref, commits from common ancestor: commit 96cf04dce19e7c90bc05b8b3b192b5bfb97381d2 Author: Peter Hutterer peter.hutte...@who-t.net Date: Mon May 13 10:03:48 2013 +1000 synaptics 1.7.1 Signed-off-by: Peter Hutterer peter.hutte...@who-t.net diff --git a/configure.ac b/configure.ac index b8a75cd..5dfbc4e 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-input-synaptics], -[1.7.0], +[1.7.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-input-synaptics]) AC_CONFIG_SRCDIR([Makefile.am]) commit 3bd40423b26ab692174ddcdd12489467ba876926 Author: Peter Hutterer peter.hutte...@who-t.net Date: Thu May 9 11:09:51 2013 +1000 Plug memory leak for priv-touch_axes Allocated in event_query_touch, was never freed. Signed-off-by: Peter Hutterer peter.hutte...@who-t.net Reviewed-by: Dave Airlie airl...@redhat.com diff --git a/src/synaptics.c b/src/synaptics.c index d4b21a9..eb38271 100644 --- a/src/synaptics.c +++ b/src/synaptics.c @@ -1035,6 +1035,8 @@ DeviceClose(DeviceIntPtr dev) RetValue = DeviceOff(dev); TimerFree(priv-timer); priv-timer = NULL; +free(priv-touch_axes); +priv-touch_axes = NULL; SynapticsHwStateFree(priv-hwState); SynapticsHwStateFree(priv-old_hw_state); SynapticsHwStateFree(priv-local_hw_state); commit eb50f8023e9ce11c3f0249ef9ddf398a1d983c84 Author: Peter Hutterer peter.hutte...@who-t.net Date: Thu May 9 11:06:12 2013 +1000 Plug memory leak for option_string xf86SetStrOption() returns a strdup'd string that must be freed after use. Signed-off-by: Peter Hutterer peter.hutte...@who-t.net Reviewed-by: Dave Airlie airl...@redhat.com diff --git a/src/synaptics.c b/src/synaptics.c index 2de05d4..d4b21a9 100644 --- a/src/synaptics.c +++ b/src/synaptics.c @@ -513,12 +513,15 @@ set_softbutton_areas_option(InputInfoPtr pInfo) memcpy(pars-softbutton_areas[0], values, 4 * sizeof(int)); memcpy(pars-softbutton_areas[1], values + 4, 4 * sizeof(int)); +free(option_string); + return; fail: xf86IDrvMsg(pInfo, X_ERROR, invalid SoftButtonAreas value '%s', keeping defaults\n, option_string); +free(option_string); } static void commit 7cc0ebf0858ebb505d933839f25bb269a8cdb764 Author: Peter Hutterer peter.hutte...@who-t.net Date: Fri Apr 26 10:09:10 2013 +1000 Fix stack smash in clickpad_guess_clickfingers() Apple Magic Trackpad can report 16 slots. In clickpad_guess_clickfingers() the array allocated on the stack contains only 10 slots. As (.num_mt_mask == .num_slots), the function writes out of the bounds of close_point. Use a size 32 bitmask instead and warn if we ever get past 32 touchpoints. This fixes: https://bugzilla.redhat.com/show_bug.cgi?id=952221 Signed-off-by: Peter Hutterer peter.hutte...@who-t.net Reported-by: Benjamin Tissoires benjamin.tissoi...@redhat.com diff --git a/src/synaptics.c b/src/synaptics.c index f0a8269..2de05d4 100644 --- a/src/synaptics.c +++ b/src/synaptics.c @@ -2453,10 +2453,11 @@ clickpad_guess_clickfingers(SynapticsPrivate * priv, struct SynapticsHwState *hw) { int nfingers = 0; -char close_point[SYNAPTICS_MAX_TOUCHES] = { 0 };/* 1 for each point close - to another one */ +uint32_t close_point = 0; /* 1 bit for each point close to another one */ int i, j; +BUG_RETURN_VAL(hw-num_mt_mask sizeof(close_point) * 8, 0); + for (i = 0; i hw-num_mt_mask - 1; i++) { ValuatorMask *f1; @@ -2488,14 +2489,16 @@ clickpad_guess_clickfingers(SynapticsPrivate * priv, * size. Good luck. */ if (abs(x1 - x2) (priv-maxx - priv-minx) * .3 abs(y1 - y2) (priv-maxy - priv-miny) * .3) { -close_point[j] = 1; -close_point[i] = 1; +close_point |= (1 j); +close_point |= (1 i); } } } -for (i = 0; i SYNAPTICS_MAX_TOUCHES; i++) -nfingers += close_point[i]; +while (close_point 0) { +nfingers += close_point 0x1; +close_point = 1; +} return nfingers; } commit ac47b4ea5b4f7b920b84a1e70adce3475e3be346 Author: Peter Hutterer peter.hutte...@who-t.net Date: Wed Apr 3 10:50:50 2013 +1000 Allow soft button areas to overlap on the edge For percent-based configuration in the form of middle button 33%-66%, right button 66%-0 we'd get an error because of the one device unit overlap. This was neither documented nor useful, because leaving a 1% gap leaves an actual gap between the buttons. Allow for an overlap of one device unit on the edge of the buttons. What's picked in that case depends on the
xserver-xorg-input-synaptics: Changes to 'upstream-experimental'
conf/50-synaptics.conf |3 +++ configure.ac |2 +- src/eventcomm.c| 12 ++-- src/properties.c | 10 ++ src/ps2comm.c |8 src/synaptics.c|7 +-- src/synapticsstr.h |4 test/fake-symbols.c| 12 ++-- test/fake-symbols.h|2 -- 9 files changed, 39 insertions(+), 21 deletions(-) New commits: commit 947d96faabc7267177da32fbfc9f8c3a81b576af Author: Peter Hutterer peter.hutte...@who-t.net Date: Fri Feb 1 15:53:14 2013 +1000 synaptics 1.6.3 Signed-off-by: Peter Hutterer peter.hutte...@who-t.net diff --git a/configure.ac b/configure.ac index 2490ddb..a2e68a8 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-input-synaptics], -[1.6.2.901], +[1.6.3], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-input-synaptics]) AC_CONFIG_SRCDIR([Makefile.am]) commit 3b02d3061e58097ab5644b85250ed48e5ef0b02a Author: Peter Hutterer peter.hutte...@who-t.net Date: Fri Jan 4 16:08:47 2013 +1000 conf: add example for AreaBottomEdge on clickpad buttons Those that use clickpad buttons as buttons can see cursor jumps as the press on the touchpad - largely caused by the finger changing shape as the pressure changes and thus moving the hotspot. Simple fix is to define the clickpad soft button areas as dead areas, but this cannot be set as general option as it would break for those that use tapping. Signed-off-by: Peter Hutterer peter.hutte...@who-t.net (cherry picked from commit 2159b5d26207c83efea6efca7fa5765df95a4219) diff --git a/conf/50-synaptics.conf b/conf/50-synaptics.conf index 9e86a7a..dd16ca2 100644 --- a/conf/50-synaptics.conf +++ b/conf/50-synaptics.conf @@ -32,6 +32,9 @@ Section InputClass Identifier Default clickpad buttons MatchDriver synaptics Option SoftButtonAreas 50% 0 82% 0 0 0 0 0 +# To disable the bottom edge area so the buttons only work as buttons, +# not for movement, set the AreaBottomEdge +# Option AreaBottomEdge 82% EndSection # This option disables software buttons on Apple touchpads. commit f23991d3c2bbf25d467ddd6d850acd5bca3cd4b2 Author: Peter Hutterer peter.hutte...@who-t.net Date: Thu Jan 17 19:22:03 2013 +1000 synaptics 1.6.2.901 Signed-off-by: Peter Hutterer peter.hutte...@who-t.net diff --git a/configure.ac b/configure.ac index 894d4f5..2490ddb 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-input-synaptics], -[1.6.2], +[1.6.2.901], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-input-synaptics]) AC_CONFIG_SRCDIR([Makefile.am]) commit cb883766ec07b3380541fe9248aa46f07c39c338 Author: Peter Hutterer peter.hutte...@who-t.net Date: Thu Aug 23 16:22:31 2012 +1000 Recognise the soft button area property before clickpad is enabled Otherwise the driver has no internal reference to the soft button area property and will ignore any setting. Also, if a client sets this property, we claim it as our own and disallow deletion. Signed-off-by: Peter Hutterer peter.hutte...@who-t.net (cherry picked from commit 86460318ba5606ef41712b52e50bf7b2ba083226) diff --git a/src/properties.c b/src/properties.c index 3b3f1c5..83f370d 100644 --- a/src/properties.c +++ b/src/properties.c @@ -839,6 +839,16 @@ SetProperty(DeviceIntPtr dev, Atom property, XIPropertyValuePtr prop, } else if (property == prop_product_id || property == prop_device_node) return BadValue;/* read-only */ +else { /* unknown property */ +if (strcmp(SYNAPTICS_PROP_SOFTBUTTON_AREAS, NameForAtom(property)) == 0) +{ +prop_softbutton_areas = property; +if (SetProperty(dev, property, prop, checkonly) != Success) +prop_softbutton_areas = 0; +else if (!checkonly) +XISetDevicePropertyDeletable(dev, property, FALSE); +} +} return Success; } commit 7d1df986e1330a02cfb74a0babae1ae78768aa52 Author: Daniel Stone dan...@fooishbar.org Date: Sat Dec 29 03:24:52 2012 + Free mtdev device as well as closing it mtdev_close_delete() is to mtdev_new_open() as mtdev_close() is to mtdev_open(). So, since we're using mtdev_new_open(), we need to use mtdev_close_delete() instead of just mtdev_close() to actually free everything. Fixes an eventual failure to open the touchpad device after a lot of suspend/resume cycles. [whot: amended to mtdev_close_delete in evdev_query_touch] Signed-off-by: Daniel Stone dan...@fooishbar.org Reviewed-by: Dan Nicholson dbn.li...@gmail.com Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
xserver-xorg-input-synaptics: Changes to 'upstream-experimental'
conf/50-synaptics.conf | 18 configure.ac | 18 include/synaptics-properties.h |8 include/synaptics.h| 39 man/synaptics.man | 58 src/Makefile.am|3 src/alpscomm.c | 101 - src/eventcomm.c| 888 --- src/eventcomm.h|9 src/properties.c | 618 src/ps2comm.c | 538 +++ src/ps2comm.h | 21 src/psmcomm.c | 71 src/synaptics.c| 3114 + src/synapticsstr.h | 356 ++-- src/synproto.c | 183 ++ src/synproto.h | 78 - test/Makefile.am |3 test/eventcomm-test.c | 184 +- test/fake-symbols.c| 199 +- test/fake-symbols.h| 170 +- tools/synclient.c | 593 --- tools/syndaemon.c | 604 --- 23 files changed, 4794 insertions(+), 3080 deletions(-) New commits: commit d5ff9d8b0b186cf39695df84a10984eac559b746 Author: Peter Hutterer peter.hutte...@who-t.net Date: Tue Jun 12 13:46:34 2012 +1000 synaptics 1.6.2 Signed-off-by: Peter Hutterer peter.hutte...@who-t.net diff --git a/configure.ac b/configure.ac index 3e7ec2a..894d4f5 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-input-synaptics], -[1.6.1.901], +[1.6.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-input-synaptics]) AC_CONFIG_SRCDIR([Makefile.am]) commit c1aae820601a911432c64938f03eab62bafaab2f Author: Peter Hutterer peter.hutte...@who-t.net Date: Fri May 18 09:38:50 2012 +1000 synaptics 1.6.1.901 Signed-off-by: Peter Hutterer peter.hutte...@who-t.net diff --git a/configure.ac b/configure.ac index 565daf2..3e7ec2a 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-input-synaptics], -[1.6.1], +[1.6.1.901], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-input-synaptics]) AC_CONFIG_SRCDIR([Makefile.am]) commit 7ccca8e7d8fbf2ccb5a2dbbfbf06ff4dbd6b7149 Author: Peter Hutterer peter.hutte...@who-t.net Date: Thu May 17 12:10:04 2012 +1000 Don't allow for scroll distances of 0 (#49965) It'll either hang the server or blow up with divisions by 0, whichever one comes first. X.Org Bug 49965 http://bugs.freedesktop.org/show_bug.cgi?id=49965 Signed-off-by: Peter Hutterer peter.hutte...@who-t.net Reviewed-by: Chase Douglas chase.doug...@canonical.com (cherry picked from commit 6d47d334d8a876e7e094306c313246b87016b78a) diff --git a/src/properties.c b/src/properties.c index 44ac306..3b3f1c5 100644 --- a/src/properties.c +++ b/src/properties.c @@ -519,6 +519,9 @@ SetProperty(DeviceIntPtr dev, Atom property, XIPropertyValuePtr prop, return BadMatch; dist = (INT32 *) prop-data; +if (dist[0] == 0 || dist[1] == 0) +return BadValue; + if (para-scroll_dist_vert != dist[0]) { para-scroll_dist_vert = dist[0]; #ifdef HAVE_SMOOTH_SCROLL @@ -715,6 +718,9 @@ SetProperty(DeviceIntPtr dev, Atom property, XIPropertyValuePtr prop, return BadMatch; circdist = *(float *) prop-data; +if (circdist == 0) +return BadValue; + para-scroll_dist_circ = circdist; } else if (property == prop_circscroll_trigger) { commit f8d970e191e6df05a8f2c26afdeea3e27b941a62 Author: Peter Hutterer peter.hutte...@who-t.net Date: Thu May 17 11:02:02 2012 +1000 Reset hw-x/y to INT_MIN and skip HandleState until we have x/y events The driver assumes x/y is always valid but after coming from a resume we may get a few events with either ABS_X or ABS_Y (not both). Thus we process with hw-x == 0 and hw-y == somevalue, causing cursor jumps when calculating deltas whenver the real hw-x comes in. Fix this by resetting hw-x/y to INT_MIN and skip state processing until both axes are available. For clickpads, this means handling of data will be delayed until we get at least one motion on each axis. Button presses won't be recognised either until that happens. It requires some skill to not trigger motion on both axes, even more to press a button without doing so. For non-clickpads, handling of motion events will be delayed likewise. If a physical button is pressed immediately after resume we have to assume deltas of x/y. - If the next event is a new touch, it will have ABS_X/ABS_Y set anyway - If the finger was already down, a button event is generated, and the finger has generated ABS_X or ABS_Y only before the event, the next event containing the missing data
xserver-xorg-input-synaptics: Changes to 'upstream-experimental'
Makefile.am|8 README |6 conf/11-x11-synaptics.fdi | 10 conf/50-synaptics.conf | 21 configure.ac | 38 - include/Makefile.am|1 include/synaptics-properties.h |9 man/Makefile.am|3 man/synaptics.man | 94 +- man/syndaemon.man | 41 - src/Makefile.am|9 src/alpscomm.c | 25 src/alpscomm.h | 33 src/eventcomm.c| 384 ++ src/eventcomm.h|6 src/properties.c | 172 +++- src/ps2comm.c | 129 +-- src/ps2comm.h | 15 src/psmcomm.c | 55 - src/synaptics.c| 1473 +++-- src/synapticsstr.h | 65 + src/synproto.h | 33 test/.gitignore|6 test/Makefile.am | 15 test/eventcomm-test.c | 285 +++ test/fake-symbols.c| 452 test/fake-symbols.h| 187 + test/test-pad.c| 121 --- test/testprotocol.c| 82 -- tools/Makefile.am |3 tools/synclient.c |3 tools/syndaemon.c | 63 + 32 files changed, 2542 insertions(+), 1305 deletions(-) New commits: commit 9f9b55ab55ed5251c1607c59d8817231d076d82c Author: Peter Hutterer peter.hutte...@who-t.net Date: Mon Dec 12 11:35:37 2011 +1000 test: fix build errors introduced by upstream server change Introduced by upstream change xorg-server-1.11.99.1-33-g09e4b78, Fix gcc -Wwrite-strings warnings in xf86 ddx Signed-off-by: Peter Hutterer peter.hutte...@who-t.net diff --git a/test/fake-symbols.c b/test/fake-symbols.c index a312aa0..2d94622 100644 --- a/test/fake-symbols.c +++ b/test/fake-symbols.c @@ -44,7 +44,7 @@ xf86ReplaceIntOption(OPTTYPE optlist, const char *name, const int val) } _X_EXPORT char * -xf86SetStrOption(OPTTYPE optlist, const char *name, char *deflt) +xf86SetStrOption(OPTTYPE optlist, const char *name, CONST char *deflt) { return NULL; } @@ -60,7 +60,7 @@ xf86AddNewOption(OPTTYPE head, const char *name, const char *val) { return NULL; } -_X_EXPORT char * +_X_EXPORT CONST char * xf86FindOptionValue(OPTTYPE options, const char *name) { return NULL; diff --git a/test/fake-symbols.h b/test/fake-symbols.h index 7c74f7a..a297d28 100644 --- a/test/fake-symbols.h +++ b/test/fake-symbols.h @@ -3,8 +3,10 @@ #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) = 14 #define OPTTYPE XF86OptionPtr +#define CONST const #else #define OPTTYPE pointer +#define CONST #endif extern int xf86ReadSerial (int fd, void *buf, int count); @@ -17,15 +19,16 @@ extern int xf86SetSerialSpeed (int fd, int speed); extern OPTTYPE xf86ReplaceIntOption(OPTTYPE optlist, const char *name, const int val); extern OPTTYPE xf86AddNewOption(OPTTYPE head, const char *name, const char *val); extern char* xf86OptionName(OPTTYPE opt); -extern char* xf86FindOptionValue(OPTTYPE options, const char *name); +extern CONST char* xf86FindOptionValue(OPTTYPE options, const char *name); extern int xf86NameCmp(const char *s1, const char *s2); extern char* xf86CheckStrOption(OPTTYPE optlist, const char *name, char *deflt); -extern char * xf86SetStrOption(OPTTYPE optlist, const char *name, char *deflt); +extern char * xf86SetStrOption(OPTTYPE optlist, const char *name, CONST char *deflt); +extern _X_EXPORT char *xf86SetStrOption(XF86OptionPtr optlist, const char *name, const char *deflt); extern int xf86SetBoolOption(OPTTYPE optlist, const char *name, int deflt); extern OPTTYPE xf86AddNewOption(OPTTYPE head, const char *name, const char *val); -extern char* xf86FindOptionValue(OPTTYPE options, const char *name); +extern CONST char* xf86FindOptionValue(OPTTYPE options, const char *name); extern char* xf86OptionName(OPTTYPE opt); extern char *xf86OptionValue(OPTTYPE opt); extern int xf86NameCmp(const char *s1, const char *s2); commit b7e65f04f5f0c17ac8a26393134cc7e8418ccdec Author: Cyril Brulebois k...@debian.org Date: Mon Dec 12 01:35:27 2011 +0100 Revert: eventcomm: replace synaptics-custom TEST_BIT with server's BitIsOn. This commit reverts 13543b156d78bc4d01a19844a5ee8f283269621b As seen in Debian's #648488, this switch causes a regression on PowerPC, especially seen on iBook G4 with appletouch. Take a defensive stance and revert back to a working state until things have been figured out and fixed properly. Since things have evolved and since that revert triggers a lot of conflicts, the following method was applied: - manual reintroduction of the 3 removed macros: OFF, LONG, TEST_BIT - coccinelle semantic patch to revert from BitIsOn to TEST_BIT Coccinelle semantic patch: @@
xserver-xorg-input-synaptics: Changes to 'upstream-experimental'
New branch 'upstream-experimental' available with the following commits: commit 1a9495a74c41d956751177807602383ce4549c37 Author: Peter Hutterer peter.hutte...@who-t.net Date: Wed Sep 1 09:04:11 2010 +1000 synaptics 1.3.0 Signed-off-by: Peter Hutterer peter.hutte...@who-t.net commit 33632e447b311950729350e5802b5b1ee9616677 Author: Peter Hutterer peter.hutte...@who-t.net Date: Mon Aug 23 15:12:05 2010 +1000 man: use secondsĀ² instead of seconds per second Makes it hopefully slightly less confusing. Should have been amended before the push but ENOTENOUGHCOFFEE. Signed-off-by: Peter Hutterer peter.hutte...@who-t.net commit 7a741ddedab477baea21f3d8ce6390b7bf72399f Author: Peter Hutterer peter.hutte...@who-t.net Date: Mon Aug 23 11:55:45 2010 +1000 synaptics 1.2.99.901 Signed-off-by: Peter Hutterer peter.hutte...@who-t.net commit 59151a548dcbac6f68e4f921b5c47aea4e5bc2a3 Author: Peter Hutterer peter.hutte...@who-t.net Date: Fri Aug 20 11:09:04 2010 +1000 Enable coasting by default with a value of 20. The default value for friction coasting makes coasting much more useful now since it stops coasting after a while. Enable it by default, the man page already claims a default of 20 anyway. Signed-off-by: Peter Hutterer peter.hutte...@who-t.net commit 56655fd15f676fea143f3963e23b464b275b2e77 Author: Patrick Curran pjcur...@wisc.edu Date: Fri Jul 23 17:28:01 2010 -0500 Added friction physics so coasting can stop on its own. When you are coasting (but not corner coasting) you might want the scrolling to slow down and stop on its own. This also lets you start coasting while using a two finger scroll. Signed-off-by: Patrick Curran pjcur...@wisc.edu Reviewed-by: Peter Hutterer peter.hutte...@who-t.net Tested-by: Peter Hutterer peter.hutte...@who-t.net Signed-off-by: Peter Hutterer peter.hutte...@who-t.net commit a6ca4d2523904b7ce49edc29ba408979bdf0d45e Author: Chris Bagwell ch...@cnpbagwell.com Date: Wed Aug 18 22:09:45 2010 -0500 Reset X/Y hist on multi finger transition to fix jumps Most modern touchpads track 1st finger during multi-touch. If first finger is lifted then a jump will occur as X/Y transition to next finger location. Resetting X/Y history as each finger is lifted will hide this transition. Synaptics hw specs claim older hardware report X/Y values that are average point between multi-fingers which can cause unwanted jump. Reset X/Y history during transition to new fingers to hide this as well. Signed-off-by: Chris Bagwell ch...@cnpbagwell.com Tested-by: Peter Hutterer peter.hutte...@who-t.net Signed-off-by: Peter Hutterer peter.hutte...@who-t.net commit b774a1dba2f1f45c94fe898fe8b5ce258cbcddfc Author: Peter Hutterer peter.hutte...@who-t.net Date: Thu Aug 19 14:25:29 2010 +1000 Increase the default acceleration factor. With 4e0e53fcba6fd99d458df1905d055d63360155c0 the driver got it's own acceleration mechanism. This slowed down the pointer movement a lot, especially on ALPS touchpads. Increase the default acceleration factor to accommodate for this. The number itself is chosen through guesswork and informal tests. Signed-off-by: Peter Hutterer peter.hutte...@who-t.net Tested-by: Magnus Kessler magnus.kess...@gmx.net Reviewed-by: Magnus Kessler magnus.kess...@gmx.net commit 4b0003c3d4cee1f5c6675bde5701e2169959932a Author: Peter Hutterer peter.hutte...@who-t.net Date: Thu Aug 19 14:22:03 2010 +1000 Up the precision of MaxSpeed and AccelFactor log output. MaxSpeed usually has two decimals that matter, AccelFactor doesn't get intersting until the second decimal, so print 3. Signed-off-by: Peter Hutterer peter.hutte...@who-t.net commit 7acdbb7cf95299fda29d6bea691af925f5182749 Author: Peter Hutterer peter.hutte...@who-t.net Date: Tue Aug 17 11:34:32 2010 +1000 synclient: don't print missing if a property doesn't exist. Virtually all touchpads still in use have one or more properties missing anyway. If it's not in the list, then it's missing. Signed-off-by: Peter Hutterer peter.hutte...@who-t.net commit abb448a253cb0b3003038fbaa1daa9494c396e8f Author: Chris Bagwell ch...@cnpbagwell.com Date: Wed Jul 7 21:35:22 2010 -0500 Align EmulateTwoFinger* docs to current behavior. This corrects man page to mention EmulateTwoFingerMinW and EmulateTwoFingerMinZ are considered together. Old man page read like driver would emulate two-finger even if only pressure OR width (but not both) were supported. Next, add note to align man page with patch that defaults to enabling two-finger emulation on hardware that does not support two-finger detection but does support pressure and width detection. Signed-off-by: Chris Bagwell ch...@cnpbagwell.com