<table><tr><td style="">graesslin created this revision.<br />graesslin added a reviewer: Plasma.<br />Restricted Application added a project: Plasma on Wayland.<br />Restricted Application added a subscriber: plasma-devel.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D2978" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>This change implements the zwp_relative_pointer_v1 protocol which allows<br />
to send relative motion events.</p>

<p>The (unstable) protocol consists of a RelativePointerManager which<br />
creates RelativePointers for a given Pointer. This interface currently<br />
only has one event to report the relative motion. It carries the delta,<br />
the non-accelerated-delta and a timestamp in microsends granularity.</p>

<p>On the server side the implementation is mostly internal. Once a<br />
RelativePointerManagerInterface is created one can send relative motion<br />
events through the SeatInterface. The SeatInterface takes care of<br />
sending it to the responding RelativePointerInterface. The protocol does<br />
not restrict the sending of "normal" and relative motion events. Thus it<br />
can be combined in any way one wants. This allows to have a rather<br />
simple implementation. A user of the SeatInterface can just start to<br />
feed the relative motion events (if the information is available) to the<br />
SeatInterface together with the pointer events.</p>

<p>On client side a new RelativePointerManager and RelativePointer class<br />
are added. The RelativePointerManager creates the RelativePointer for a<br />
given Pointer. The event sent to RelativePointer is transformed in a<br />
normal signal.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>rKWAYLAND KWayland</div></div></div><br /><div><strong>BRANCH</strong><div><div>relative-pointer</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D2978" rel="noreferrer">https://phabricator.kde.org/D2978</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>autotests/client/test_wayland_registry.cpp<br />
autotests/client/test_wayland_seat.cpp<br />
src/client/CMakeLists.txt<br />
src/client/protocols/relative-pointer-unstable-v1.xml<br />
src/client/registry.cpp<br />
src/client/registry.h<br />
src/client/relativepointer.cpp<br />
src/client/relativepointer.h<br />
src/server/CMakeLists.txt<br />
src/server/display.cpp<br />
src/server/display.h<br />
src/server/pointer_interface.cpp<br />
src/server/pointer_interface.h<br />
src/server/pointer_interface_p.h<br />
src/server/relativepointer_interface.cpp<br />
src/server/relativepointer_interface.h<br />
src/server/relativepointer_interface_p.h<br />
src/server/relativepointer_interface_v1.cpp<br />
src/server/seat_interface.cpp<br />
src/server/seat_interface.h<br />
src/tools/mapping.txt</div></div></div><br /><div><strong>EMAIL PREFERENCES</strong><div><a href="https://phabricator.kde.org/settings/panel/emailpreferences/" rel="noreferrer">https://phabricator.kde.org/settings/panel/emailpreferences/</a></div></div><br /><div><strong>To: </strong>graesslin, Plasma<br /><strong>Cc: </strong>plasma-devel, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas<br /></div>