All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Éric Piel" <E.A.B.Piel@tudelft.nl>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: "linux-input@vger.kernel.org" <linux-input@vger.kernel.org>,
	Florian Ragwitz <rafl@debian.org>,
	Henrik Rydberg <rydberg@euromail.se>
Subject: Re: [PATCH 7/7] elantech: average the two coordinates when 2 fingers
Date: Fri, 30 Jul 2010 20:55:05 +0200	[thread overview]
Message-ID: <4C532009.4020103@tudelft.nl> (raw)
In-Reply-To: <20100721033655.GA9070@core.coreip.homeip.net>

On 21-07-10 05:36, Dmitry Torokhov wrote:
> On Mon, Jun 21, 2010 at 11:06:28PM +0200, Éric Piel wrote:
>> When 2 fingers are pressed, the low and high coordinates are given.
>> Instead of reporting just the low coordinate as the normal position,
>> report an average of both. This allow to have the cursor always move,
>> whichever finger moves. In practice, this improves the support of
>> two-fingers scolling with the synaptics X driver.
:
>> -		input_report_abs(dev, ABS_X, x1<<  2);
>> -		input_report_abs(dev, ABS_Y, y1<<  2);
>> +		input_report_abs(dev, ABS_X, (x1 + x2)<<  1);
>> +		input_report_abs(dev, ABS_Y, (y1 + y2)<<  1);
>
> I am concerned what happens when you put one finger first and then add
> another one. Would not that couse the cursor to jump?
>
> I'd say we need to obey MT protocol and continue reporting the first
> contact in non-MT protocol and rely on MT-aware drivers to do better job
> of contact tracking. This is also consistent with how other drivers,
> such as bcm5974, report coordinates.
If the MT protocol says we should always report on the single-touch side 
the first contact, then I guess it's better to do so. However, I've just 
read the latest version of the mt-protocol document, and couldn't see 
anything saying that. Are you sure this is the official behavior? I'd 
tend to think that single-touch and multi-touch are never read together, 
so they can be different.

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.

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.

So, I think this patch is an improvement for the user, but if you think 
that it would not respect the MT protocol, just drop it.

Eric
--
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-30 18:55 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 [this message]
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
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=4C532009.4020103@tudelft.nl \
    --to=e.a.b.piel@tudelft.nl \
    --cc=dmitry.torokhov@gmail.com \
    --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.