<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_ASSIGNED "
title="ASSIGNED - Undefined behavior: disabling a mouse while "disabled on external mouse" is set on touchpad"
href="https://bugs.freedesktop.org/show_bug.cgi?id=97595">97595</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Undefined behavior: disabling a mouse while "disabled on external mouse" is set on touchpad
</td>
</tr>
<tr>
<th>Product</th>
<td>Wayland
</td>
</tr>
<tr>
<th>Version</th>
<td>unspecified
</td>
</tr>
<tr>
<th>Hardware</th>
<td>Other
</td>
</tr>
<tr>
<th>OS</th>
<td>All
</td>
</tr>
<tr>
<th>Status</th>
<td>ASSIGNED
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>medium
</td>
</tr>
<tr>
<th>Component</th>
<td>libinput
</td>
</tr>
<tr>
<th>Assignee</th>
<td>wayland-bugs@lists.freedesktop.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>peter.hutterer@who-t.net
</td>
</tr>
<tr>
<th>CC</th>
<td>carlosg@gnome.org
</td>
</tr></table>
<p>
<div>
<pre>libinput provides a LIBINPUT_CONFIG_SEND_EVENTS_DISABLED_ON_EXTERNAL_MOUSE on
touchpads which disable the device whenever an external pointer device is
plugged in.
This works as it says on the box but when a touchpad is set to this value and
LIBINPUT_CONFIG_SEND_EVENTS_DISABLED is set on the mouse device, then both
devices remain disabled. It's not possible for a client to have that flag set
on the touchpad and then disabling another device.
For Wayland this means there is no way to disable a pointer-looking device in
libinput while simultaneously having the "disabled on external mouse" feature
available. In X we can work around it by using the "Device Enabled" property
which is outside of libinput.
So the two options we have is:
* declare this as intended but that shifts the handling to the caller who now
has to keep track of external devices, making the option effectively moot.
because once you have the code for this, why use the built-in one...
* within libinput track which device(s) toggled this feature and re-enable the
touchpad when the respective device is disabled. This has a potential to get
iffy if we have more external pointer devices but I'm hoping that this is
enough of a niche that we can ignore at least that bit.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>