Button State Transitions

Certain button state transitions are expected from devices. Devices that support hovering must include the In-range and Tip usages in their descriptor.

The transitions for these devices are listed in the following table.

Event Button Status
Device comes in range In-range=on; Tip=off
Device comes in contact with the surface of the digitizer In-range=on; Tip=on
Contact is moving on the digitizer surface In-range=on; Tip=on
Contact is lifted off of the digitizer surface In-range=off; Tip=off
Contact goes out of range In-range=off; Tip=off

Note  The X and Y coordinates reported for the “out of range” event must match those reported for the last “in range” event before the “out of range” event was detected. For the case when the device goes “out of range” very quickly, where “up” and “out of range” are detected in the same scan, both events or packets need to be reported. One for “up”, and another for “out of range”.

Devices that do not support hovering do not need to include the In-range usage in their descriptor. The transitions for these devices are listed in the following table.

Event Button Status
Device comes in contact with the surface of the digitizer Tip=on
Contact is moving on the digitizer surface In-range=on; Tip=on
Contact is lifted off of the digitizer surface In-range=off; Tip=off

Note  The X and Y coordinates reported when the finger is lifted off the digitizer surface must be the same as those reported for the last “move” packet detected.

The transitions for pen devices that support the Eraser and Inverted usages are given in the following table. These are the only valid states. Any other state may be rejected by Windows.

Event Button Status
Tip end of pen is hovering In-range=on; Tip=off; Inverted=off; Eraser=off
Tip end of pen is on the surface In-range=on; Tip=on; Inverted=off; Eraser=off
Tip end of pen is off the surface and hovering again In-range=on; Tip=off; Inverted=off; Eraser=off
Tip goes out of range In-range=off; Tip=off; Inverted=off; Eraser=off
Eraser end of the pen is hovering In-range=on; Tip=off; Inverted=on; Eraser=off
Eraser end of the pen is on the surface In-range=on; Tip=off; Inverted=off; Eraser=on
Eraser end of the pen is off the surface and hovering again In-range=on; Tip=off; Inverted=on; Eraser=off
Eraser goes out of range In-range=off; Tip=off; Inverted=off; Eraser=off