<div>graesslin created this revision.<br />
graesslin added a reviewer: Plasma.<br />
Restricted Application added a project: Plasma.<br />
Restricted Application added a subscriber: plasma-devel.</div><br /><div><strong>REVISION SUMMARY</strong><div><p>This change introduces support for text input. Text input allows to<br />
compose text on the server (e.g. through a virtual keyboard) and sent<br />
the composed text to the client.</p>

<p>There are multiple interfaces for text input. QtWayland 5.6 uses<br />
wl_text_input, QtWayland 5.7 uses zwp_text_input_v2.</p>

<p>wl_text_input is from pre Wayland-Protocols times and considered as<br />
UnstableV0 in this implementation. The other interface is UnstableV2.<br />
Unfortunately the V2 variant is not yet part of Wayland-Protocols, but<br />
used in Qt.</p>

<p>The implementation hides the different interfaces as good as possible.<br />
The general idea is the same, the differences are rather minor.</p>

<p>This means changes to how interfaces are wrapped normally. On client<br />
side in the Registry a manager is factored which represent either of<br />
the two interfaces. Similar on the server side Display's factory method<br />
takes an argument to decide which interface should be factored. This<br />
way a user of the library can expose both interfaces and thus be<br />
compatible with Qt 5.6 and Qt 5.7 onwards.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>rKWAYLAND KWayland</div></div></div><br /><div><strong>BRANCH</strong><div><div>graesslin/text-input</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D1631" rel="noreferrer">https://phabricator.kde.org/D1631</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>autotests/client/CMakeLists.txt<br />
autotests/client/test_text_input.cpp<br />
autotests/client/test_wayland_registry.cpp<br />
src/client/CMakeLists.txt<br />
src/client/protocols/text-input-unstable-v2.xml<br />
src/client/protocols/text-input.xml<br />
src/client/registry.cpp<br />
src/client/registry.h<br />
src/client/textinput.cpp<br />
src/client/textinput.h<br />
src/client/textinput_p.h<br />
src/client/textinput_v0.cpp<br />
src/client/textinput_v2.cpp<br />
src/server/CMakeLists.txt<br />
src/server/display.cpp<br />
src/server/display.h<br />
src/server/seat_interface.cpp<br />
src/server/seat_interface.h<br />
src/server/seat_interface_p.h<br />
src/server/textinput_interface.cpp<br />
src/server/textinput_interface.h<br />
src/server/textinput_interface_p.h<br />
src/server/textinput_interface_v0.cpp<br />
src/server/textinput_interface_v2.cpp<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, sebas<br /></div>