Draft: Add input-observation protocol
Permits surfaces to observe input events also when not having input focus.
This draft provides support for monitoring the pointer's position. It is intended to later extend it to further input devices (eg. touch devices).
Pointer position is reported relative to an a provided wl_surface
, for positions both within and outside the surface area, for each displayed instance of the surface, irrespective of whether it has pointer focus or not. It is intended to permit application to adapt visual appearance in reaction to pointer position.
Intended use-case: An application launcher dock that re-arranges it's contents when an additional application is dragged towards it's area: Once a drag is initiated, the dock is to re-arrange existing content to present a "landing zone", as the additional application is dragged towards the dock. That visual reaction is to start before the pointer enters the docks's surface area, and should also when parts of the dock area (or the area around the dock) is obstructed by other surfaces.
This protocol is further usable for accessbility tools, eg. to add a tool (using the layer
protocol) to add a large icon to highlight the pointer's position. The protocol will allow such an application, which currently would have to be implemented in compositor space.
And yeah, the protocol will also permit gadgets such as xeyes
.
Justification
- This is an addition to the
ext
namespace. An (early) implementation is at https://github.com/phkaeser/wlmaker/tree/pointer-position. - The implementation is using the MIT lience.
- If it gets accepted, I intend to upstream into wlroots.
Requirements for merging
-
Review -
Implementations -
ACKs from members