56464253c0
In the wl_seat conversion, struct wl_touch got fields for the focused surface and the client resource for the input device being focused. However, the conversion was incomplete: the old fields weston_seat::touch_focus* we still used by the event dispatching code, but the new code never set them. Therefore no touch events were ever sent. From weston_seat, remove the fields touch_focus, touch_focus_listener, touch_focus_resource, and touch_focus_resource_listener. They are replaced by the corresponding fields and listeners from struct wl_touch. While doing this, fix touch_set_focus(). If touch_set_focus() was called first with surface A, and then with surface B, without being called with NULL in between, it would corrupt the destroy_signal list. It was equivalent of calling wl_signal_add() for different signal sources with the same listener without removing in between. Now, touch_set_focus() first removes focus and listeners, and then attempts to assign focus if requested. If the target client has not subscribed for touch events, the touch focus will now be NULL. Before this patch, the touch focus was left to the previous surface. NOTE: this patch depends on the patch "server: add lose_touch_focus()" for Wayland. Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com> |
||
---|---|---|
clients | ||
data | ||
protocol | ||
shared | ||
src | ||
tests | ||
wcap | ||
.gitignore | ||
autogen.sh | ||
configure.ac | ||
COPYING | ||
Makefile.am | ||
README | ||
weston.ini |
Weston Weston is the reference implementation of a Wayland compositor, and a useful compositor in its own right. Weston has various backends that lets it run on Linux kernel modesetting and evdev input as well as under X11. Weston ships with a few example clients, from simple clients that demonstrate certain aspects of the protocol to more complete clients and a simplistic toolkit. There is also a quite capable terminal emulator (weston-terminal) and an toy/example desktop shell. Finally, weston also provides integration with the Xorg server and can pull X clients into the Wayland desktop and act as a X window manager. Refer to http://wayland.freedesktop.org/building.html for buiding weston and its dependencies.