linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).