Thread (9 messages) flat view 9 messages, 6 authors, 2011-09-17

Re: [PATCH] Input: wacom - Add POINTER and DIRECT device properties

From: Chris Bagwell <hidden>
Date: 2011-09-13 20:54:55

On Tue, Sep 13, 2011 at 12:36 PM, Ping Cheng [off-list ref] wrote:
On Tue, Sep 13, 2011 at 7:13 AM, Chris Bagwell [off-list ref] wrote:
quoted
On Tue, Sep 13, 2011 at 3:09 AM, Henrik Rydberg [off-list ref] wrote:
quoted
Hi Jason,
quoted
Adds INPUT_PROP_POINTER or INPUT_PROP_DIRECT as necessary to the
hardware supported by the Wacom driver. The DIRECT property is
assigned to devices with an embedded screen (i.e. touchscreens
and display tablets). The POINTER property is assigned to those
without embedded screens.

Signed-off-by: Jason Gerecke <redacted>
---
According to the discussion leading up to the properties interface
(https://lkml.org/lkml/2010/12/15/263), a tablet is a direct pointer
device, as opposed to a touchpad, which is an indirect pointer
device. The distinction determines the direction of two-finger scroll,
for instance. The question is then what behavior should be assigned to
a large tablet without an embedded screen. It should have POINTER set
for sure, but should it also have DIRECT set?
We have discussed and debated the above before the patch was posted.

As Ikbel pointed out, a standalone tablet can be DIRECT or INDIRECT,
depending on how it is used. So, it is more a property that is decided
by the client than by the kernel driver.
I've a couple questions that would help me decide how things should be declared.

Can DIRECT be translated to mean treat coordinates as absolute
coordinates mapped to screen?  Or is it meant to be reserved only for
the more specific touchscreen-like application were the touch is laid
directly on top of the object being manipulated (or picture is
overlaid the touch for projector case)?

If some company shipped a touchpad+projector, would that ideally
declare DIRECT and not declare POINTER since user is directly touching
objects and the display of a pointer would serve no purpose?

What I'm getting at with the second question is if user pairs up a
touch tablet/touchpad with a projector then declaring even POINTER may
be just as wrong as not declaring DIRECT.

I don't think we can every get custom HW applications declared
correctly, so do we punish all cases and not declare anything?
quoted
Here are all the possible combinations based on my understanding of
their intended usage.

 * Touch interface without screen should have POINTER only to
indicate pointer needed and to treat absolute coordinates as relative
movement.  Relative movement is product's default behavior as
documented in its own manual and what I think should be advertised by
default.
 * Pen interface without screen should have both POINTER and DIRECT to
indicate pointer needed and to treat absolute coordinates as absolute
movement.
Reporting it as DIRECT indicates it can only be used as DIRECT. We
don't want client to make that assumption. User-land clients can
distinguish a touch POINTER from a pen POINTER by the tool types.
I see your logic now and patch does follow that logic.

I can actually buy into that although it seems to make the need for
both POINTER and DIRECT redundant. Touchscreen = DIRECT while Tablet
(pen, touch, or both) = POINTER.  No overlap.

If we do allow DIRECT on tablets then I do see now it becomes a
relaxed DIRECT since application will most likely still offer
switching pens to relative mode.

Chris
quoted
 * Touch interfaces with screen should have DIRECT only to indicate no
pointer displayed and absolute coordinates as absolute movement.
 * Pen interface with screen should have DIRECT only to indicate no
pointer displayed and absolute coordinates as absolute movement.
* A Pen+Touch touchscreen (only the wacom_w8001.c), should have DIRECT
only to indicate no pointer displayed and absolute coordinates as
absolute movement.

Assuming we all agree on those combination, then in the patch the
Graphire and Intuos tablets are missing a DIRECT, the touchscreens are
correct, and the Bamboo's need to add DIRECT for the PEN interface
only.
I agree with all the other assumptions except this one.

Ping
--
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help