Weston-simple-touch does not paint the touch events when output seat is specified in weston.ini. Although it works fine when touch device is unplugged and plugged back. Few observations made during this test, I would like to mention them here. Touch works fine in this case. If I launch weston-terminal(or any client), I am able to switch between weston-terminal and weston-simple-touch via touch. Steps to reproduce: 1. Configure Weston.ini with output seat=back0 Example: Output name=HDMI2 seat=back0 2. Launch Weston 3. Execute : weston-simple-touch 4. Drag fingers on weston-simple-touch to paint 4. Observe touch is not painted on weston-simple-touch. Software stack: wayland (HEAD) 1.4.92-0-g4a4523f drm (HEAD) libdrm-2.4.52-0-g46d451c mesa (HEAD) remotes/origin/10.1-0-g340ebdb libva (HEAD) libva-1.2.1-0-g88ed1eb intel-driver (HEAD) 1.2.2-0-g121e70d cairo (HEAD) heads/1.12-0-g59e2a93 libinput (HEAD) remotes/origin/HEAD-0-g97af5c3 weston (HEAD) 1.4.92-0-gd7d71e8
Thanks for the bug report. I think the problem is just that weston-simple-touch is not designed to handle multiple seats. Whenever a seat is advertised via wl_global that seat replaces the one and only seat that it keeps track of. It will listen for capability events on that seat and if there is a touch device available then it will listen for events on that. If there is no touch device then it will destroy any touch device it had and stop listening. That means if if there are two seats and the seat without a touch device is second it will cause simple-touch to stop listening for events on the first seat. That explains why unplugging the touch device makes it work again because it will get the capability event again and start listening for events again. It would probably be good to fix this so that simple-touch remains a good example of how to use touch but I guess it's not massively urgent because it's not really a bug in Weston or Wayland.
Actually I went ahead and made a little patch anyway: http://lists.freedesktop.org/archives/wayland-devel/2014-May/014690.html
commit c3f03f557b49f701c13557f266a57e0aa0ecf310 Author: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com> Date: Wed May 7 11:57:27 2014 +0300 simple-touch: Handle multiple seats properly If simple-touch ran on a compositor with multiple seats, and the first one happened to have the touch capability while the second one didn't, the handler for seat capabilities would destroy the wl_touch device it created on the first call for the first seat when it was called a again for the second seat that has not touch capabilities. Fix this problem by creating a separate struct for each seat. https://bugs.freedesktop.org/show_bug.cgi?id=78365
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.