debian/changelog | 10 debian/patches/233_dix_save_touchpoint_coords_before_transform.patch | 205 ++++++++++ debian/patches/series | 3 3 files changed, 218 insertions(+)
New commits: commit b3cc7a2bfebd6c12aacd2f8aa65422dbc0ee0bab Author: Bryce Harrington <[email protected]> Date: Wed Nov 21 15:18:54 2012 -0800 Update changelog for release to nexus7 ppa diff --git a/debian/changelog b/debian/changelog index 766c962..dad1c42 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,10 @@ -xorg-server (2:1.13.0-0ubuntu7) UNRELEASED; urgency=low +xorg-server (2:1.13.0-0ubuntu6.1~nexus7.1) quantal; urgency=low - * Add 233_dix_save_touchpoint_coords_before_transform.patch: Patch - proposed to xorg-devel@ to fix issue where when a transformation - matrix is applied on input, it gets applied multiple times. - (LP: #1076627) + * Add 233_dix_save_touchpoint_coords_before_transform.patch: Fixes issue + where input transformation matrix gets applied multiple times. This + patch was proposed to xorg-devel@ and has not yet been merged to + the upstream tree, so should be replaced with what gets applied. + (LP: #1075415, #1076567, #1076627) -- Bryce Harrington <[email protected]> Wed, 21 Nov 2012 19:29:41 +0000 commit 90def7f6690e2346ee9e408a94735effe9d8a70a Author: Bryce Harrington <[email protected]> Date: Wed Nov 21 14:23:25 2012 -0800 Add patch 233 to fix touch input while rotated diff --git a/debian/changelog b/debian/changelog index bf4e911..766c962 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +xorg-server (2:1.13.0-0ubuntu7) UNRELEASED; urgency=low + + * Add 233_dix_save_touchpoint_coords_before_transform.patch: Patch + proposed to xorg-devel@ to fix issue where when a transformation + matrix is applied on input, it gets applied multiple times. + (LP: #1076627) + + -- Bryce Harrington <[email protected]> Wed, 21 Nov 2012 19:29:41 +0000 + xorg-server (2:1.13.0-0ubuntu6) quantal; urgency=low [ Timo Aaltonen ] diff --git a/debian/patches/233_dix_save_touchpoint_coords_before_transform.patch b/debian/patches/233_dix_save_touchpoint_coords_before_transform.patch new file mode 100644 index 0000000..adb9d64 --- /dev/null +++ b/debian/patches/233_dix_save_touchpoint_coords_before_transform.patch @@ -0,0 +1,205 @@ +From fetchmail Thu Nov 8 14:21:57 2012 +Return-Path: <[email protected]> +X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on + humber.bryceharrington.org +X-Spam-Level: +X-Spam-Status: No, score=-7.4 required=5.0 tests=BWH_DEBIAN,BWH_DEBIAN_2, + BWH_FREE,BWH_FREE_2,BWH_PATCH_1,BWH_PATCH_2,BWH_PATCH_3,BWH_SPELLING_2b, + DKIM_SIGNED,MISSING_FROM,T_DKIM_INVALID autolearn=ham version=3.3.2 +Received: from fiordland.canonical.com (fiordland.canonical.com [91.189.94.145]) + by vinyl.outflux.net (8.14.4/8.14.4/Debian-2ubuntu2) with ESMTP id qA8MHM9S009852 + for <[email protected]>; Thu, 8 Nov 2012 14:17:22 -0800 +Received: from cluster-j.mailcontrol.com (cluster-j.mailcontrol.com [85.115.54.190]) + by fiordland.canonical.com (Postfix) with ESMTP id C7169A18CF4 + for <[email protected]>; Thu, 8 Nov 2012 22:17:16 +0000 (UTC) +Received: from arctowski.canonical.com (arctowski.canonical.com [91.189.94.158]) + by rly27j.srv.mailcontrol.com (MailControl) with ESMTP id qA8MHFbx032037 + for <[email protected]>; Thu, 8 Nov 2012 22:17:15 GMT +Received: from fiordland.canonical.com ([91.189.94.145]) + by arctowski.canonical.com with esmtp (Exim 4.71) + (envelope-from <[email protected]>) + id 1TWaPT-0006Wp-Ft + for [email protected]; Thu, 08 Nov 2012 22:17:15 +0000 +Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) + by fiordland.canonical.com (Postfix) with ESMTP id 137A3A18CF4 + for <[email protected]>; Thu, 8 Nov 2012 22:17:15 +0000 (UTC) +Received: from gabe.freedesktop.org (localhost [127.0.0.1]) + by gabe.freedesktop.org (Postfix) with ESMTP id 6323D9EF0A + for <[email protected]>; Thu, 8 Nov 2012 14:17:14 -0800 (PST) +X-Original-To: [email protected] +Delivered-To: [email protected] +Received: from mail-ie0-f170.google.com (mail-ie0-f170.google.com + [209.85.223.170]) + by gabe.freedesktop.org (Postfix) with ESMTP id A19AE9E8E1 + for <[email protected]>; Thu, 8 Nov 2012 14:14:11 -0800 (PST) +Received: by mail-ie0-f170.google.com with SMTP id c12so4623944ieb.15 + for <[email protected]>; Thu, 08 Nov 2012 14:14:11 -0800 (PST) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; + h=from:to:cc:subject:date:message-id:x-mailer; + bh=ChYBhB6uKrVo4Ao196l73x2fAcIlO26+FQDoBGw1w+Q=; + b=jUNE0YMNkPVtK3L8aDM9vAkeTj895KvO6R39IsvdAJLojh5/jNdMluqAJjqIVlAdcy + aSH9eKSyQgpZgq1z6k00gShenCU5LbGcE589ERCy+G88IDzbIt2gVl3kBPtn1afjMKlR + cO7vkm9wjRSbdURKdiM09DrcjDb2uP2LfBAKI= +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=google.com; s=20120113; + h=from:to:cc:subject:date:message-id:x-mailer:x-gm-message-state; + bh=ChYBhB6uKrVo4Ao196l73x2fAcIlO26+FQDoBGw1w+Q=; + b=AsccAWxVJp1JFYFojIhP3Bp6cbti51qYFsNW+jEK/EiqRXQ5tXaCSjh596FFxIXBou + jeY/yaXrNoWDeJ3EIn2VqZOe6rREdp6Wyi094577azkafnSz6taWRi78eahx/EZ9diUG + erHVhqcJoi9/IDYbMNLQM+HZixf6IePtpMpsXW5IPZapy8qWYr0fQGivFJNR8JjeI65k + zo9smHcctrAtPxAFS/rFqJ92CzLJ+Q7yNBWYp30mi0sj8Et4gNwhdXk/NE3f0RHfocMQ + WnfvTVL4Rq1kBTP93x9h4iGqxXpkNy5RHy7UO1lR18IekMn7WAmMumDdt+0+biKWoDQY + tGXA== +Received: by 10.50.41.129 with SMTP id f1mr9546471igl.53.1352412851135; + Thu, 08 Nov 2012 14:14:11 -0800 (PST) +Received: from ynovikov-z620.wat.corp.google.com + (ynovikov-z620.wat.corp.google.com [172.23.176.218]) + by mx.google.com with ESMTPS id gz10sm5784369igc.9.2012.11.08.14.14.08 + (version=TLSv1/SSLv3 cipher=OTHER); + Thu, 08 Nov 2012 14:14:10 -0800 (PST) +From: Yuly Novikov <[email protected]> +To: [email protected] +Subject: [PATCH] dix: Save touchpoint last coordinates before transform. #49347 +Date: Thu, 8 Nov 2012 17:13:39 -0500 +Message-Id: <[email protected]> +X-Mailer: git-send-email 1.7.7.3 +X-Gm-Message-State: ALoCoQlTsnH/BfXzhWsBi3khQqpVw3HqsxOMxQd8/ankSlsWTNEBphsEpSVtfUe1ueGrFQGbnjmH +X-Mailman-Approved-At: Thu, 08 Nov 2012 14:16:46 -0800 +Cc: [email protected] +X-BeenThere: [email protected] +X-Mailman-Version: 2.1.13 +Precedence: list +List-Id: "X.Org development list" <xorg-devel.lists.x.org> +List-Unsubscribe: <http://lists.x.org/mailman/options/xorg-devel>, + <mailto:[email protected]?subject=unsubscribe> +List-Archive: <http://lists.x.org/archives/xorg-devel> +List-Post: <mailto:[email protected]> +List-Help: <mailto:[email protected]?subject=help> +List-Subscribe: <http://lists.x.org/mailman/listinfo/xorg-devel>, + <mailto:[email protected]?subject=subscribe> +MIME-Version: 1.0 +Content-Type: text/plain; charset="us-ascii" +Content-Transfer-Encoding: 7bit +Sender: [email protected] +Errors-To: [email protected] +X-Mailcontrol-Inbound: WBq!ucXEz80wFmxD6S7f3nyjenN!phNbIQWiyBG44+lo3FL0yiLKb3yjenN!phNbh+9WRKrdgbE= +X-Scanned-By: MIMEDefang 2.71 on 198.145.64.163 +Envelope-To: [email protected] +X-MIMEDefang-Filter: outflux$Revision: 1.316 $ +X-HELO: fiordland.canonical.com +Status: RO +Content-Length: 4239 +Lines: 111 + +A touchpoint used to store the entire valuators structure, +and coordinates there were stored post-transformation, +which 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. + +This commit gets rid of the valuators, as only X and Y coordinates +are actually used, and stores only the relevant values. +The variable name was changed to indicate +that the values are stored before transformation, +to avoid confusion with last.valuators, which are after transformation. + +Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=49347 + +Signed-off-by: Yuly Novikov <[email protected]> +--- + dix/devices.c | 2 -- + dix/getevents.c | 19 ++++++------------- + dix/touch.c | 1 - + include/inputstr.h | 3 +-- + 4 files changed, 7 insertions(+), 18 deletions(-) + +diff --git a/dix/devices.c b/dix/devices.c +index 613323f..d23b1b4 100644 +--- a/dix/devices.c ++++ b/dix/devices.c +@@ -967,8 +967,6 @@ CloseDevice(DeviceIntPtr dev) + free(dev->deviceGrab.sync.event); + free(dev->config_info); /* Allocated in xf86ActivateDevice. */ + free(dev->last.scroll); +- for (j = 0; j < dev->last.num_touches; j++) +- free(dev->last.touches[j].valuators); + free(dev->last.touches); + dev->config_info = NULL; + dixFreePrivates(dev->devPrivates, PRIVATE_DEVICE); +diff --git a/dix/getevents.c b/dix/getevents.c +index 8b4379d..fe60ac3 100644 +--- a/dix/getevents.c ++++ b/dix/getevents.c +@@ -1951,32 +1951,25 @@ 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 < 2; i++) { + double val; + + if (valuator_mask_fetch_double(&mask, i, &val)) +- valuator_mask_set_double(touchpoint.ti->valuators, i, val); ++ touchpoint.ti->last_raw_axes[i] = val; ++ else ++ valuator_mask_set_double(&mask, i, ++ touchpoint.ti->last_raw_axes[i]); + } + } + ++ transformAbsolute(dev, &mask); + clipAbsolute(dev, &mask); + } + else { +diff --git a/dix/touch.c b/dix/touch.c +index 5f77be5..5074ec7 100644 +--- a/dix/touch.c ++++ b/dix/touch.c +@@ -226,7 +226,6 @@ void + TouchInitDDXTouchPoint(DeviceIntPtr dev, DDXTouchPointInfoPtr ddxtouch) + { + memset(ddxtouch, 0, sizeof(*ddxtouch)); +- ddxtouch->valuators = valuator_mask_new(dev->valuator->numAxes); + } + + Bool +diff --git a/include/inputstr.h b/include/inputstr.h +index 5a38924..c06f9fe 100644 +--- a/include/inputstr.h ++++ b/include/inputstr.h +@@ -330,8 +330,7 @@ typedef struct _DDXTouchPointInfo { + Bool active; /* whether or not the touch is active */ + uint32_t ddx_id; /* touch ID given by the DDX */ + Bool emulate_pointer; +- +- ValuatorMask *valuators; /* last recorded axis values */ ++ double last_raw_axes[2]; /* last X/Y axis valuator data as posted */ + } DDXTouchPointInfoRec; + + typedef struct _TouchClassRec { +-- +1.7.7.3 + +_______________________________________________ [email protected]: X.Org development +Archives: http://lists.x.org/archives/xorg-devel +Info: http://lists.x.org/mailman/listinfo/xorg-devel + diff --git a/debian/patches/series b/debian/patches/series index b81784e..65ae588 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -32,3 +32,6 @@ 229_udev-fix.diff 230-fix-compat-output-selection.patch 231-scan-pci-after-probing-devices.patch + +# Posted on xorg-devel@; not yet in tree +233_dix_save_touchpoint_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]

