2017-01-20 16:54:13 +11:00
|
|
|
/**
|
|
|
|
|
@page switches Switches
|
|
|
|
|
|
|
|
|
|
libinput supports a couple of switches. Unlike button events that come in
|
|
|
|
|
press and release pairs, switches are usually toggled once and left at the
|
|
|
|
|
setting for an extended period of time.
|
|
|
|
|
|
|
|
|
|
Only some switches are handled by libinput, see @ref libinput_switch for a
|
|
|
|
|
list of supported switches. Switch events are exposed to the caller, but
|
|
|
|
|
libinput may handle some switch events internally and enable or disable
|
|
|
|
|
specific features based on a switch state.
|
|
|
|
|
|
|
|
|
|
The order of switch events is guaranteed to be correct, i.e., a switch will
|
|
|
|
|
never send consecutive switch on, or switch off, events.
|
|
|
|
|
|
2017-06-13 12:20:34 +10:00
|
|
|
@section switches_lid Lid switch handling
|
|
|
|
|
|
|
|
|
|
Where available, libinput listens to devices providing a lid switch.
|
|
|
|
|
The evdev event code `EV_SW` `SW_LID` is provided as @ref
|
|
|
|
|
LIBINPUT_SWITCH_LID. If devices with a lid switch have a touchpad device,
|
|
|
|
|
the device is disabled while the lid is logically closed. This is to avoid
|
|
|
|
|
ghost touches that can be caused by interference with touchpads and the
|
|
|
|
|
closed lid. The touchpad is automatically re-enabled whenever the lid is
|
|
|
|
|
openend.
|
|
|
|
|
|
|
|
|
|
This handling of lid switches is transparent to the user, no notifications
|
|
|
|
|
are sent and the device appears as enabled at all times.
|
|
|
|
|
|
|
|
|
|
On some devices, the device's lid state does not always reflect the physical
|
|
|
|
|
state and the lid state may report as closed even when the lid is physicall
|
|
|
|
|
open. libinput employs some heuristics to detect user input (specificially
|
|
|
|
|
typing) to re-enable the touchpad on those devices.
|
|
|
|
|
|
2017-01-20 16:54:13 +11:00
|
|
|
*/
|