debian/changelog | 8 + debian/patches/237_dix_save_touchpoint_last_coords_before_transform.patch | 80 ++++++++++ debian/patches/series | 1 3 files changed, 89 insertions(+)
New commits: commit 54e8c5a03305cf55ea197a7664ce07c07cea07c5 Author: Bryce Harrington <[email protected]> Date: Tue Jan 22 14:34:20 2013 -0800 Add 237_dix_save_touchpoint_last_coords_before_transform.patch: Fix sensitive touch settings on Nexus 7 when input is transformed. (LP: #1075415, #1076567, #1076627) diff --git a/debian/changelog b/debian/changelog index 305deba..5605e51 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +xorg-server (2:1.13.1.901-0ubuntu2) raring; urgency=low + + * Add 237_dix_save_touchpoint_last_coords_before_transform.patch: + Fix sensitive touch settings on Nexus 7 when input is transformed. + (LP: #1075415, #1076567, #1076627) + + -- Bryce Harrington <[email protected]> Tue, 22 Jan 2013 13:51:16 -0800 + xorg-server (2:1.13.1.901-0ubuntu1) raring; urgency=low * Merge from unreleased debian git. diff --git a/debian/patches/237_dix_save_touchpoint_last_coords_before_transform.patch b/debian/patches/237_dix_save_touchpoint_last_coords_before_transform.patch new file mode 100644 index 0000000..84897d4 --- /dev/null +++ b/debian/patches/237_dix_save_touchpoint_last_coords_before_transform.patch @@ -0,0 +1,80 @@ +commit 3b9f1c701787965246638c1a6fd99fb2b6078114 +Author: Yuly Novikov <[email protected]> +Date: Mon Nov 19 21:04:57 2012 -0500 + + dix: Save touchpoint last coordinates before transform. #49347 + + DDXTouchPointInfoRec.valuators used to store axis values after transform. + This resulted in Coordinate Transformation Matrix + being applied multiple times to the last coordinates, + in the case when only pressure changes in the last touch event. + + Changed DDXTouchPointInfoRec.valuators to store values before transform. + + Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=49347 + + Signed-off-by: Yuly Novikov <[email protected]> + Reviewed-by: Peter Hutterer <[email protected]> + Signed-off-by: Peter Hutterer <[email protected]> + +# 2012-12-21 - Backport patch to 1.13.0.902 +# Bryce Harrington <[email protected]> + +diff --git a/dix/getevents.c b/dix/getevents.c +index 8b4379d..58abdba 100644 +--- a/dix/getevents.c ++++ b/dix/getevents.c +@@ -1951,32 +1951,27 @@ GetTouchEvents(InternalEvent *events, DeviceIntPtr dev, uint32_t ddx_touchid, + default: + return 0; + } +- if (t->mode == XIDirectTouch && !(flags & TOUCH_CLIENT_ID)) { +- if (!valuator_mask_isset(&mask, 0)) +- valuator_mask_set_double(&mask, 0, +- valuator_mask_get_double(touchpoint.ti-> +- valuators, 0)); +- if (!valuator_mask_isset(&mask, 1)) +- valuator_mask_set_double(&mask, 1, +- valuator_mask_get_double(touchpoint.ti-> +- valuators, 1)); +- } + + /* Get our screen event co-ordinates (root_x/root_y/event_x/event_y): + * these come from the touchpoint in Absolute mode, or the sprite in + * Relative. */ + if (t->mode == XIDirectTouch) { +- transformAbsolute(dev, &mask); +- + if (!(flags & TOUCH_CLIENT_ID)) { +- for (i = 0; i < valuator_mask_size(&mask); i++) { ++ for (i = 0; i < max(valuator_mask_size(&mask), 2); i++) { + double val; + + if (valuator_mask_fetch_double(&mask, i, &val)) + valuator_mask_set_double(touchpoint.ti->valuators, i, val); ++ /* If the device doesn't post new X and Y axis values, ++ * use the last values posted. ++ */ ++ else if (i < 2 && ++ valuator_mask_fetch_double(touchpoint.ti->valuators, i, &val)) ++ valuator_mask_set_double(&mask, i, val); + } + } + ++ transformAbsolute(dev, &mask); + clipAbsolute(dev, &mask); + } + else { +diff --git a/include/inputstr.h b/include/inputstr.h +index 5a38924..bb0a779 100644 +--- a/include/inputstr.h ++++ b/include/inputstr.h +@@ -331,7 +331,7 @@ typedef struct _DDXTouchPointInfo { + uint32_t ddx_id; /* touch ID given by the DDX */ + Bool emulate_pointer; + +- ValuatorMask *valuators; /* last recorded axis values */ ++ ValuatorMask *valuators; /* last axis values as posted, pre-transform */ + } DDXTouchPointInfoRec; + + typedef struct _TouchClassRec { diff --git a/debian/patches/series b/debian/patches/series index 5ee1be6..b7a346f 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -36,3 +36,4 @@ 500_pointer_barrier_thresholds.diff ## from upstream, drop when rebasing to a new version +237_dix_save_touchpoint_last_coords_before_transform.patch -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

