<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>The LibInput::Device provides a way to enable/disable the device.<br />
This is used by the Connection to toggle all touchpad devices on/off<br />
when the touchpad key is pressed. This is a hard coded key and not<br />
mapped to a global shortcut (maybe it should?).</p>

<p>Detecting what is a touchpad is unfortunately not tivial. The code<br />
uses the following approach:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">it's a pointer</li>
<li class="remarkup-list-item">it's not also a keyboard or touch screen</li>
<li class="remarkup-list-item">it's at least one of the following:<ul class="remarkup-list">
<li class="remarkup-list-item">supports multiple tap fingers</li>
<li class="remarkup-list-item">supports disable while typing</li>
<li class="remarkup-list-item">supports disable on external mouse</li>
</ul></li>
</ul>

<p>If the code finds a touchpad and changes it's state successfully,<br />
it triggers the touchpadEnabledChanged on Plasma's osdService.</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>Tested on notebook with toggle touchpad button</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>rKWIN KWin</div></div></div><br /><div><strong>BRANCH</strong><div><div>toggle-touchpad</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D1545" rel="noreferrer">https://phabricator.kde.org/D1545</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>input.cpp<br />
libinput/connection.cpp<br />
libinput/connection.h<br />
libinput/device.cpp<br />
libinput/device.h</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>