[PATCH libinput 19/26] tablet: support z-rotation for the mouse/lens tool

Benjamin Tissoires benjamin.tissoires at gmail.com
Mon Mar 2 07:38:54 PST 2015


On Mon, Mar 2, 2015 at 1:53 AM, Peter Hutterer <peter.hutterer at who-t.net> wrote:
> On Thu, Feb 26, 2015 at 04:20:49PM -0500, Benjamin Tissoires wrote:
>> On Tue, Feb 24, 2015 at 1:21 AM, Peter Hutterer
>> <peter.hutterer at who-t.net> wrote:
>> > Needs to be calculated from the x/y tilt values, the mouse has a fixed offset
>> > of 175 degrees counterclockwise.
>> >
>> > Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
>> > ---
[snipped]
>> >
>> >         memset(tablet->changed_axes, 0, sizeof(tablet->changed_axes));
>> > @@ -454,6 +511,9 @@ tool_set_bits_from_libwacom(const struct tablet_dispatch *tablet,
>> >                 copy_axis_cap(tablet, tool, LIBINPUT_TABLET_AXIS_TILT_X);
>> >                 copy_axis_cap(tablet, tool, LIBINPUT_TABLET_AXIS_TILT_Y);
>> >                 break;
>> > +       case WSTYLUS_PUCK:
>> > +               copy_axis_cap(tablet, tool, LIBINPUT_TABLET_AXIS_ROTATION_Z);
>> > +               break;
>>
>> Further tests showed that the puck needs to export the Distance as
>> well. Otherwise, it becomes impossible to have a sane relative mouse
>> mode without asking the user to raise the mouse out of proximity.
>
> I'll add the distance to the axes exported in libwacom. Not sure what you
> mean with the relative mouse mode though, can you explain further?
>

Sure.
So, when you are using a mouse on a Wacom, you are most of the time
using it in relative mode.
When you move the cursor to the left in several steps, you have to
release the mouse go back to the right and put the mouse back on the
sensor. During the time the mouse is not touching the sensor, you need
to stop sending relative events (or the cursor goes back and forth).
If you do not have the Distance information, the user has to be out of
proximity of the sensor to be able to not send events while the mouse
is in-air. This distance can be several centimeters on recent Wacoms,
and is a pain for the user.
With the Distance information, you know that the mouse is not touching
anymore the sensor, and the driver can stop sending relative events as
soon as the mouse is lifted.

Cheers,
Benjamin


More information about the wayland-devel mailing list