touch: Make weston_touch_set_focus() take a touch instead of a seat

The other set_focus() functions take the relevant type instead of a seat
already, so this is consistent.

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
dev
Derek Foreman 10 years ago committed by Daniel Stone
parent ca79076b03
commit 4c93c08679
  1. 2
      desktop-shell/shell.c
  2. 2
      src/compositor.c
  3. 2
      src/compositor.h
  4. 40
      src/input.c

@ -543,7 +543,7 @@ shell_touch_grab_start(struct shell_touch_grab *grab,
weston_touch_start_grab(touch, &grab->grab); weston_touch_start_grab(touch, &grab->grab);
if (shell->child.desktop_shell) if (shell->child.desktop_shell)
weston_touch_set_focus(touch->seat, weston_touch_set_focus(touch,
get_default_view(shell->grab_surface)); get_default_view(shell->grab_surface));
} }

@ -1814,7 +1814,7 @@ weston_view_unmap(struct weston_view *view)
wl_fixed_from_int(0), wl_fixed_from_int(0),
wl_fixed_from_int(0)); wl_fixed_from_int(0));
if (seat->touch && seat->touch->focus == view) if (seat->touch && seat->touch->focus == view)
weston_touch_set_focus(seat, NULL); weston_touch_set_focus(seat->touch, NULL);
} }
} }

@ -418,7 +418,7 @@ weston_touch_create(void);
void void
weston_touch_destroy(struct weston_touch *touch); weston_touch_destroy(struct weston_touch *touch);
void void
weston_touch_set_focus(struct weston_seat *seat, weston_touch_set_focus(struct weston_touch *touch,
struct weston_view *view); struct weston_view *view);
void void
weston_touch_start_grab(struct weston_touch *device, weston_touch_start_grab(struct weston_touch *device,

@ -108,7 +108,7 @@ touch_focus_view_destroyed(struct wl_listener *listener, void *data)
container_of(listener, struct weston_touch, container_of(listener, struct weston_touch,
focus_view_listener); focus_view_listener);
weston_touch_set_focus(touch->seat, NULL); weston_touch_set_focus(touch, NULL);
} }
static void static void
@ -118,7 +118,7 @@ touch_focus_resource_destroyed(struct wl_listener *listener, void *data)
container_of(listener, struct weston_touch, container_of(listener, struct weston_touch,
focus_resource_listener); focus_resource_listener);
weston_touch_set_focus(touch->seat, NULL); weston_touch_set_focus(touch, NULL);
} }
static void static void
@ -1449,25 +1449,25 @@ notify_keyboard_focus_out(struct weston_seat *seat)
} }
WL_EXPORT void WL_EXPORT void
weston_touch_set_focus(struct weston_seat *seat, struct weston_view *view) weston_touch_set_focus(struct weston_touch *touch, struct weston_view *view)
{ {
struct wl_list *focus_resource_list; struct wl_list *focus_resource_list;
focus_resource_list = &seat->touch->focus_resource_list; focus_resource_list = &touch->focus_resource_list;
if (view && seat->touch->focus && if (view && touch->focus &&
seat->touch->focus->surface == view->surface) { touch->focus->surface == view->surface) {
seat->touch->focus = view; touch->focus = view;
return; return;
} }
wl_list_remove(&seat->touch->focus_resource_listener.link); wl_list_remove(&touch->focus_resource_listener.link);
wl_list_init(&seat->touch->focus_resource_listener.link); wl_list_init(&touch->focus_resource_listener.link);
wl_list_remove(&seat->touch->focus_view_listener.link); wl_list_remove(&touch->focus_view_listener.link);
wl_list_init(&seat->touch->focus_view_listener.link); wl_list_init(&touch->focus_view_listener.link);
if (!wl_list_empty(focus_resource_list)) { if (!wl_list_empty(focus_resource_list)) {
move_resources(&seat->touch->resource_list, move_resources(&touch->resource_list,
focus_resource_list); focus_resource_list);
} }
@ -1475,19 +1475,19 @@ weston_touch_set_focus(struct weston_seat *seat, struct weston_view *view)
struct wl_client *surface_client; struct wl_client *surface_client;
if (!view->surface->resource) { if (!view->surface->resource) {
seat->touch->focus = NULL; touch->focus = NULL;
return; return;
} }
surface_client = wl_resource_get_client(view->surface->resource); surface_client = wl_resource_get_client(view->surface->resource);
move_resources_for_client(focus_resource_list, move_resources_for_client(focus_resource_list,
&seat->touch->resource_list, &touch->resource_list,
surface_client); surface_client);
wl_resource_add_destroy_listener(view->surface->resource, wl_resource_add_destroy_listener(view->surface->resource,
&seat->touch->focus_resource_listener); &touch->focus_resource_listener);
wl_signal_add(&view->destroy_signal, &seat->touch->focus_view_listener); wl_signal_add(&view->destroy_signal, &touch->focus_view_listener);
} }
seat->touch->focus = view; touch->focus = view;
} }
/** /**
@ -1525,7 +1525,7 @@ notify_touch(struct weston_seat *seat, uint32_t time, int touch_id,
* until all touch points are up again. */ * until all touch points are up again. */
if (touch->num_tp == 1) { if (touch->num_tp == 1) {
ev = weston_compositor_pick_view(ec, x, y, &sx, &sy); ev = weston_compositor_pick_view(ec, x, y, &sx, &sy);
weston_touch_set_focus(seat, ev); weston_touch_set_focus(touch, ev);
} else if (touch->focus) { } else if (touch->focus) {
ev = touch->focus; ev = touch->focus;
weston_view_from_global_fixed(ev, x, y, &sx, &sy); weston_view_from_global_fixed(ev, x, y, &sx, &sy);
@ -1574,7 +1574,7 @@ notify_touch(struct weston_seat *seat, uint32_t time, int touch_id,
grab->interface->up(grab, time, touch_id); grab->interface->up(grab, time, touch_id);
if (touch->num_tp == 0) if (touch->num_tp == 0)
weston_touch_set_focus(seat, NULL); weston_touch_set_focus(touch, NULL);
break; break;
} }
} }
@ -2275,7 +2275,7 @@ weston_seat_release_touch(struct weston_seat *seat)
{ {
seat->touch_device_count--; seat->touch_device_count--;
if (seat->touch_device_count == 0) { if (seat->touch_device_count == 0) {
weston_touch_set_focus(seat, NULL); weston_touch_set_focus(seat->touch, NULL);
weston_touch_cancel_grab(seat->touch); weston_touch_cancel_grab(seat->touch);
weston_touch_reset_state(seat->touch); weston_touch_reset_state(seat->touch);
seat_send_updated_caps(seat); seat_send_updated_caps(seat);

Loading…
Cancel
Save