graesslin created this revision. graesslin added a reviewer: Plasma. Restricted Application added a project: Plasma on Wayland. Restricted Application added a subscriber: plasma-devel.
REVISION SUMMARY This change implements the zwp_relative_pointer_v1 protocol which allows to send relative motion events. The (unstable) protocol consists of a RelativePointerManager which creates RelativePointers for a given Pointer. This interface currently only has one event to report the relative motion. It carries the delta, the non-accelerated-delta and a timestamp in microsends granularity. On the server side the implementation is mostly internal. Once a RelativePointerManagerInterface is created one can send relative motion events through the SeatInterface. The SeatInterface takes care of sending it to the responding RelativePointerInterface. The protocol does not restrict the sending of "normal" and relative motion events. Thus it can be combined in any way one wants. This allows to have a rather simple implementation. A user of the SeatInterface can just start to feed the relative motion events (if the information is available) to the SeatInterface together with the pointer events. On client side a new RelativePointerManager and RelativePointer class are added. The RelativePointerManager creates the RelativePointer for a given Pointer. The event sent to RelativePointer is transformed in a normal signal. REPOSITORY rKWAYLAND KWayland BRANCH relative-pointer REVISION DETAIL https://phabricator.kde.org/D2978 AFFECTED FILES autotests/client/test_wayland_registry.cpp autotests/client/test_wayland_seat.cpp src/client/CMakeLists.txt src/client/protocols/relative-pointer-unstable-v1.xml src/client/registry.cpp src/client/registry.h src/client/relativepointer.cpp src/client/relativepointer.h src/server/CMakeLists.txt src/server/display.cpp src/server/display.h src/server/pointer_interface.cpp src/server/pointer_interface.h src/server/pointer_interface_p.h src/server/relativepointer_interface.cpp src/server/relativepointer_interface.h src/server/relativepointer_interface_p.h src/server/relativepointer_interface_v1.cpp src/server/seat_interface.cpp src/server/seat_interface.h src/tools/mapping.txt EMAIL PREFERENCES https://phabricator.kde.org/settings/panel/emailpreferences/ To: graesslin, #plasma Cc: plasma-devel, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas