At the moment, there's a circular dependency between input backends and the workspace. Besides being a code smell, it can be a potential source of crashes as well. For example, if the workspace has not been created yet and that case is overlooked, kwin is going to crash.
In order to break the circular dependency, this MR changes the api of the InputDevice so absolute position is specified in 0 to 1 range. The Workspace layer is responsible for mapping absolute coordinates to workspace coordinates. As a bonus, the Workspace layer could apply its custom mapping policies, for example tablet input could be aware of the active window.
The erasure of the workspace bits also makes the backend more reusable, which can be useful in our (plasma) future projects.
Make wayland backend create a pointer and a touch device per window
Adjust the fake input protocol