From: "Éric Piel" <E.A.B.Piel@tudelft.nl>
To: Chris Bagwell <chris@cnpbagwell.com>
Cc: Henrik Rydberg <rydberg@euromail.se>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
"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: Sun, 01 Aug 2010 01:04:30 +0200 [thread overview]
Message-ID: <4C54ABFE.8050106@tudelft.nl> (raw)
In-Reply-To: <AANLkTi=cEEx-5eQPbRYvMMaECvXKQ+i-e0Eaw_g4JY7=@mail.gmail.com>
Op 31-07-10 21:53, Chris Bagwell schreef:
>
>
> On Fri, Jul 30, 2010 at 4:01 PM, Henrik Rydberg <rydberg@euromail.se
> <mailto:rydberg@euromail.se>> wrote:
>
> On 07/30/2010 08:55 PM, Éric Piel wrote:
>
> > 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 agree, I have seen this behavior before and it is not quite what
> you want. The
> average point does jump.
>
>
> This is basically same approach as what synaptics hardware is
> reporting. Their Synaptics PS/2 TouchPad Interfacing Guide mentions
> current hardware reports an x/y closer to first finger during multiple
> fingers and that older hardware reports a value closer to center. Both
> cases, you can see movement when either finger is moving.
>
> There are a few existing X side bug reports I've seen related to this
> behaviour. On newer synaptics pad its easiest to see if you touch 1st
> finger on left side of pad, 2nd finger on right side of pad, and then
> release 1st finger then you will see a big cursor jump as hardware is
> force to transition over to 2nd finger x/y (make sure 2 finger scrolling
> is disabled as that feature can fix issue).
>
> I've seen xf86-input-synaptics patches floating around that try to
> detect jumps-because-of-averaging from the size of delta and discard but
> it is easy to be mistaken. Probably its better to detect
> BTN_TOOL_DOUBLETAP transitions back to 0 and treating similar to both
> fingers being lifted to account for expected jump.
>
> So an option is to do something similar to below and clearly document
> that user space needs to account for known reporting behaviour when
> BTN_TOOL_DOUBLETOUCH transitions back to 0.
I've got some fairly new versions of everything, but at least here, this
is already happening with the X synaptics driver: in practice there is
not jump at all, which ever finger is reported in doubletap. In
doubletap it moves the scrolling axes, and changing to singletap, it
resets to the new current position. No jump, both with my old synaptics
hardware and with the elantech.
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
next prev parent reply other threads:[~2010-07-31 23:04 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
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 [this message]
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=4C54ABFE.8050106@tudelft.nl \
--to=e.a.b.piel@tudelft.nl \
--cc=chris@cnpbagwell.com \
--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.