From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Henrik Rydberg <rydberg@euromail.se>
Cc: "Éric Piel" <E.A.B.Piel@tudelft.nl>,
"linux-input@vger.kernel.org" <linux-input@vger.kernel.org>,
"Florian Ragwitz" <rafl@debian.org>
Subject: Re: [PATCH 7/7] elantech: average the two coordinates when 2 fingers
Date: Sat, 31 Jul 2010 02:33:12 -0700 [thread overview]
Message-ID: <20100731093312.GA3461@core.coreip.homeip.net> (raw)
In-Reply-To: <4C53ECB4.2080700@euromail.se>
On Sat, Jul 31, 2010 at 11:28:20AM +0200, Henrik Rydberg wrote:
> On 07/30/2010 11:41 PM, Éric Piel wrote:
>
> [...]
>
> >> It is true that there are no specific section on how to handle the ABS_X/Y
>
> >> events, and different drivers have slightly different strategies. However,
> >> common to them all is that a single finger is consistently used to report the
> >> events.
> > Maybe it would be useful to add a paragraph to the mt-protocol document
> > about the relation with the single-touch events.
>
>
> Indeed.
>
> > Well as an anecdote, on my old laptop with a single-touch synaptics
> > hardware, when I press 2 fingers, the average point is reported. That's
> > all in hardware, though so it probably doesn't count as a typical driver
> > behaviour ;-)
>
>
> Those devices have no other information to report.
>
> >>> More specifically, on this hardware, when there are two fingers, we get
>
> >>> only the lower coordinates and the higher coordinates, but we don't know
> >>> exactly where are the fingers. As there is no tracking, the lower
> >>> coordinate might be the second finger applied, so even if we report just
> >>> the lower coordinates, there is 75% chance that the cursor will jump.
> >>
> >>
> >> Perhaps it is better to not report ABS_X/Y at all in the case of two fingers on
> >> this trackpad. With any reasonable userspace driver, the ABS_X/Y will be masked
> >> out anyways.
> > What do you mean? ABS_X/Y is still very useful, for example for gesture,
> > or to manage horizontal/vertical scrolling. In the xorg synaptics
> > driver, it's not used to move the cursor position, but it's definitely
> > not masked out!
>
>
> Maybe the idea sounds radical, but there is a rationale.
>
> The semantics of ABS_X/Y is a singular, well-defined point. In the trackpad
> case, the movement of that point is used to guide a pointer on screen, but there
> are other scenarios.
>
> In the presence of multiple touch points, both ABS_X/Y and the pointer are
> ill-defined. This simple fact has far-reaching implications; in Xorg land, there
> is a whole new input protocol cooking to deal with it. For all practical
> purposes, the traditional ABS_X/Y point has no meaning in the multitouch case.
>
> Instead of extending the semantics of ABS_X/Y, one could simply omit the event
> during a multi-finger touch. In practice, this would most likely confuse some
> applications. Sending the last known one-finger touch point should be less
> confusing. Not quite equivalent, but close enough.
>
> >>> That's actually the reason I prefer the average: it gives a 100%
> >>> expectable behavior (because the average is always correct). In
> >>> practice, when using the xorg synaptics driver, with the default
> >>> 2-fingers-scrolling mode, the cursor never jumps because as soon as the
> >>> second finger is applied, X and Y are not used to move the cursor.
> >>
> >>
> >> It is predictable, but it is still bad behavior. ;-)
> > :
> > I'm completely against not reporting the position with 2 fingers,
> > because definitely, users would lose some features. With 3 and 4
> > fingers, we report the lower coordinates (the only ones provided by the
> > hardware). So it'd be extremely weird not to report any for 2 fingers!
>
>
> This sounds like a misunderstanding. To rephrase: the suggestion is to always
> send the last known one-finger touch point, and to update that point only when
> there is a single finger on the pad.
>
This would break two-finger scrolling mode of synaptics X driver.
>
> > As a user, I enjoy better when the average is reported, because
> > whichever finger I move, I get a feedback, there is never a finger
> > "hidden" behind the other one. Nevertheless, if consistency matters,
> > let's just leave it as is.
>
>
> This behavior can be created in userland using the MT touch points, if so preferred.
>
--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2010-07-31 9:33 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-21 20:59 [PATCH 0/7] elantech: various improvements for 6-byte protocol Éric Piel
2010-06-21 21:01 ` [PATCH 1/7] elantech: Describe further the protocol Éric Piel
2010-06-21 21:02 ` [PATCH 2/7] [NEEDS TEST] elantech: discard the first 2 positions reports for some firmwares Éric Piel
2010-06-21 21:03 ` [PATCH 3/7] elantech: distinguish various hardware/firmware versions Éric Piel
2010-06-21 21:04 ` [PATCH 4/7] elantech: implement data check for 6-byte protocol Éric Piel
2010-06-21 21:05 ` [PATCH 6/7] elantech: export pressure and width when supported Éric Piel
2010-06-21 21:06 ` [PATCH 7/7] elantech: average the two coordinates when 2 fingers Éric Piel
2010-07-21 3:36 ` Dmitry Torokhov
2010-07-30 18:55 ` Éric Piel
2010-07-30 21:01 ` Henrik Rydberg
2010-07-30 21:41 ` Éric Piel
2010-07-31 9:28 ` Henrik Rydberg
2010-07-31 9:33 ` Dmitry Torokhov [this message]
2010-07-31 12:49 ` Henrik Rydberg
2010-07-31 23:00 ` Éric Piel
2010-08-01 7:52 ` Henrik Rydberg
2010-07-31 19:56 ` Chris Bagwell
[not found] ` <AANLkTi=cEEx-5eQPbRYvMMaECvXKQ+i-e0Eaw_g4JY7=@mail.gmail.com>
2010-07-31 23:04 ` Éric Piel
2010-08-01 9:37 ` Henrik Rydberg
2010-08-01 11:28 ` Éric Piel
2010-08-01 13:57 ` Henrik Rydberg
2010-08-02 8:17 ` Éric Piel
2010-08-02 10:02 ` Henrik Rydberg
2010-08-02 11:12 ` Éric Piel
2010-08-02 11:22 ` Henrik Rydberg
2010-08-02 11:33 ` Éric Piel
2010-08-02 11:46 ` Henrik Rydberg
2010-08-02 12:13 ` Éric Piel
2010-08-02 12:29 ` Henrik Rydberg
2010-08-02 12:46 ` Éric Piel
2010-08-02 13:03 ` Henrik Rydberg
2010-08-02 13:23 ` Éric Piel
2010-08-02 14:12 ` Henrik Rydberg
2010-08-02 16:39 ` Dmitry Torokhov
2010-08-02 17:15 ` Henrik Rydberg
2010-08-08 22:51 ` Éric Piel
2010-08-08 22:52 ` [PATCH 07/10] elantech: Report multitouch with proper ABS_MT messages Éric Piel
2010-08-08 22:53 ` [PATCH 08/10] elantech: track finger to distinguish coordinates in 2-finger report Éric Piel
2010-08-08 22:54 ` [PATCH 09/10] elantech: remove support for proprietary X driver Éric Piel
2010-08-08 22:55 ` [PATCH 10/10] elantech: don't take into account the border size in the calculations Éric Piel
2010-08-02 16:26 ` [PATCH 7/7] elantech: average the two coordinates when 2 fingers Dmitry Torokhov
2010-08-02 17:05 ` Henrik Rydberg
2010-08-01 7:36 ` Henrik Rydberg
2010-06-21 21:07 ` [PATCH 5/7] elantech: report position also with 3 fingers Éric Piel
2010-07-21 3:38 ` Dmitry Torokhov
2010-07-30 18:37 ` Éric Piel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100731093312.GA3461@core.coreip.homeip.net \
--to=dmitry.torokhov@gmail.com \
--cc=E.A.B.Piel@tudelft.nl \
--cc=linux-input@vger.kernel.org \
--cc=rafl@debian.org \
--cc=rydberg@euromail.se \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.