Differentiate between physical and virtual devices
With passive libei contexts receiving events sent by the EIS implementation, the type of device changes significantly. While a relative input device could still send data in logical pixels, absolute devices may not have that luxury.
Best example here is an external tablet (think: Wacom Intuos): that tablet has no built-in mapping to a screen and thus cannot capture input events in logical pixels.
Address this by adding a device type, either virtual or physical. In terms of functionality, the device's type decides:
- only virtual devices have regions
- only physical devices have a size
The event API remains as-is but the event data not represents either logical pixels (virtual devices) or mm (physical device).
An EIS implementation connected to a passive libei context would likely create:
- a virtual relative device (sending deltas in logical pixels)
- one or more physical absolute devices (sending deltas in mm)
cc @jadahl