weston/src
Pekka Paalanen 56464253c0 compositor: rework touch focus
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>
2012-07-31 22:27:23 -04:00
..
xwayland xwm: Make override-redirect windows opaque 2012-07-22 15:32:45 -04:00
.gitignore text: Add input_method and text_model interfaces 2012-06-21 16:41:09 -04:00
android-framebuffer.cpp Add Android backend 2012-05-31 13:54:01 -04:00
android-framebuffer.h Add Android backend 2012-05-31 13:54:01 -04:00
clipboard.c clipboard: add seat destroy signal handler 2012-07-11 15:42:46 -04:00
compositor-android.c compositor-android: Add proper error handling in android_compositor_create() 2012-07-09 17:50:45 -04:00
compositor-drm.c compositor-drm: Handle incomplete [output] sections without crashing 2012-07-31 22:18:28 -04:00
compositor-openwfd.c Split weston_compositor_init into base and _gl 2012-06-22 11:52:08 -04:00
compositor-wayland.c compositor: Use a minimal restore handler for crash clean up 2012-07-31 14:32:01 -04:00
compositor-x11.c compositor: Use a minimal restore handler for crash clean up 2012-07-31 14:32:01 -04:00
compositor.c compositor: rework touch focus 2012-07-31 22:27:23 -04:00
compositor.h compositor: rework touch focus 2012-07-31 22:27:23 -04:00
evdev-private.h evdev: Add device capabilities 2012-05-31 15:42:15 -04:00
evdev-touchpad.c Replace fprintf() by weston_log() 2012-06-08 13:11:36 -04:00
evdev.c evdev: query position ranges for MT, too 2012-07-31 22:20:09 -04:00
evdev.h Convert wl_input_device to wl_seat (and friends) 2012-05-16 15:29:06 -04:00
filter.c Replace fprintf() by weston_log() 2012-06-08 13:11:36 -04:00
filter.h evdev: Improve touchpad support and add motion filters 2012-05-17 11:33:45 -04:00
launcher-util.c weston-launcher: use CLOEXEC on fallback path 2012-07-31 22:19:31 -04:00
launcher-util.h Introduce weston-launch 2012-04-06 14:01:19 +02:00
libbacklight.c compositor-drm: fix libbacklight build 2012-03-04 22:00:02 -05:00
libbacklight.h Fix a few -pedantic warnings 2012-05-10 14:11:44 -04:00
log.c Log: Remove date from timestamp, log it only once. 2012-06-11 09:42:57 -04:00
log.h compositor: prettify program info in log 2012-06-11 09:47:26 -04:00
Makefile.am Never install weston setuid 2012-07-19 14:17:58 -04:00
matrix.c compositor: simplify the matrix inversion API 2012-01-27 10:44:22 +02:00
matrix.h compositor: simplify the matrix inversion API 2012-01-27 10:44:22 +02:00
screenshooter.c compositor: Introduce weston_output_schedule_repaint() 2012-06-20 00:38:20 -04:00
shell.c shell: Give keyboard focus to top surface when current keyboard focus goes away 2012-07-31 22:18:02 -04:00
tablet-shell.c util: Generalize surface animation code 2012-06-21 22:07:30 -04:00
text-backend.c Extract the text_model_manager interface from input_method 2012-07-22 12:06:10 -04:00
tty.c compositor: Use a minimal restore handler for crash clean up 2012-07-31 14:32:01 -04:00
util.c shell: Animate input panel mapping 2012-06-21 22:34:39 -04:00
weston-egl-ext.h Update src/weston-egl-ext.h 2012-07-23 20:54:42 -04:00
weston-launch.c weston-launch: be more descriptive with output messages 2012-04-17 14:10:42 -04:00
weston-launch.h Introduce weston-launch 2012-04-06 14:01:19 +02:00
zoom.c Move text-cursor-position.c into zoom.c 2012-06-25 17:13:58 -04:00