Button state transitions

This topic describes the button state transitions that are expected from devices.

Devices that support hovering

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

EventButton status (set buttons)
Device comes in rangeIn-range=on; Tip=off
Device comes in contact with the surface of the digitizerIn-range=on; Tip=on
Contact is moving on digitizer surfaceIn-range=on; Tip=on
Contact is lifted off the digitizer surfaceIn-range=on; Tip=on
Contact goes out of rangeIn-range=off; Tip=off

 

*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. Even in the case where the device goes “out of range” very quickly such that “up”, and “out of range” are detected in the same scan, both events/packets need to be reported. One for “up”, and another for “out of range”.

Devices that don't support hovering

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.

EventButton status (set buttons)
Device comes in contact with the surface of the digitizerTip=on
Contact is moving on digitizer surfaceTip=on
Contact is lifted off the digitizer surfaceTip=off

 

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

Pen devices that support Eraser and Inverted bit

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

EventButton status (set buttons)
Tip end of pen is hoveringIn-range=on; Tip=off; Inverted=off; Eraser=off
Tip end of pen is on the surfaceIn-range=on; Tip=on; Inverted=off; Eraser=off
Tip end of pen is off the surface and hovering againIn-range=on; Tip=off; Inverted=off; Eraser=off
Tip goes out of rangeIn-range=off; Tip=off; Inverted=off; Eraser=off
Eraser end of the pen is hoveringIn-range=on; Tip=off; Inverted=on; Eraser=off
Eraser end of the pen is on the surfaceIn-range=on; Tip=off; Inverted=off; Eraser=on
Eraser end of pen is off the surface and hovering againIn-range=on; Tip=off; Inverted=on; Eraser=off
Eraser goes out of rangeIn-range=off; Tip=off; Inverted=off; Eraser=off

 

 

 

Send comments about this topic to Microsoft

Show: