On Mar 18, 2007, at 22:23 , Zephaniah E. Hull wrote:

I'll write a more complete reply tomorrow, however.

On Sun, Mar 18, 2007 at 01:18:26PM -0400, Albert Cahalan wrote:
Preventing sudden pointer movement on mode switch is critical.
To the raw stylus data, subtract the initial (post-mode-switch)
stylus data and add the pre-mode-switch screen location.

That roughly describes how we use the GS as a relative device, it is
useful for moving the cursor around for use on menus, however the PT
sensor is there for use with drawing, that _absolutely_ requires that there be jumps when you lift the stylus and move it to another point on
the touchpad.

You're not immediately post-mode-switch when you place the
stylus for a second time, so there would be the expected jump.
The initial stylus data is only determined from stylus input that
immediately follows finger input.

Actually, you are. There is simply no usable way around the fact that a
lift and retouch elsewhere is counted as a post-mode-switch on the
second touch.

See below for why.

Please keep in mind, the GS sensor is not usable at all while in PT
mode, and the only indication that we have that we may wish to go back
to GS mode is the device indicating that there is no longer a stylus
touching the touchpad. Thus, every lift and move to another position is
going to involve a mode switch to GS, then a mode switch to PT.

That is a bad time for the mode switch. Mode switches should only
happen when there is both activity on the non-active device and
inactivity on the active device. If there is activity on both devices,
the inactive one gets ignored.

So, when in stylus mode, you should remain there until there is
finger movement without stylus pressure. When in finger mode,
you should remain there until there is stylus pressure without any
finger detection.

This is not possible with the existing hardware.

We do not have the ability to detect GS down while in PT mode, so we
must switch back to GS mode once the stylus is no longer in contact
with the touchpad.

There is currently a debounce delay there, to handle a stylus that the
touchpad is only half seeing, set at 50ms, however that is far too small
to avoid the mode switches, increasing this to some arbitrary amount
would, likewise, not be as useful as it could be, because an accidental
touch with a fingernail will render the GS unusable until the timeout
happens.

Just another reason to not let the cursor move when a mode switch happens. Why should the user care?

Perhaps in some future revision of the touchpad we will be able to get
GS-down data while in PT mode, however with the current hardware, it's
just not possible.

Even if the time-out happens and the hardware is switched to GS mode, you would not actually need to report that higher up until the next event, which could be a PT or GS one, right? So if there are PT events, then the stylus is lifted, but the next events are again from PT, the "virtual" stylus mode could still be in effect. Only when a GS event is registered, we'd drop out of the "virtual" stylus mode.

- Bert -


_______________________________________________
Devel mailing list
[email protected]
http://mailman.laptop.org/mailman/listinfo/devel

Reply via email to