compositor: use new drag icon listener for setting up drag surfaces
That way we can get rid of the call to weston_compositor_update_drag_surfaces() on shell->map().
This commit is contained in:
parent
9390ae3ed1
commit
d6ea33dfd6
@ -1958,6 +1958,18 @@ bind_input_device(struct wl_client *client,
|
|||||||
resource->destroy = unbind_input_device;
|
resource->destroy = unbind_input_device;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
device_handle_new_drag_icon(struct wl_listener *listener,
|
||||||
|
struct wl_resource *resource, uint32_t time)
|
||||||
|
{
|
||||||
|
struct weston_input_device *device;
|
||||||
|
|
||||||
|
device = container_of(listener, struct weston_input_device,
|
||||||
|
new_drag_icon_listener);
|
||||||
|
|
||||||
|
weston_input_update_drag_surface(&device->input_device, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
WL_EXPORT void
|
WL_EXPORT void
|
||||||
weston_input_device_init(struct weston_input_device *device,
|
weston_input_device_init(struct weston_input_device *device,
|
||||||
struct weston_compositor *ec)
|
struct weston_compositor *ec)
|
||||||
@ -1979,6 +1991,10 @@ weston_input_device_init(struct weston_input_device *device,
|
|||||||
device->drag_surface_destroy_listener.func = handle_drag_surface_destroy;
|
device->drag_surface_destroy_listener.func = handle_drag_surface_destroy;
|
||||||
|
|
||||||
wl_list_insert(ec->input_device_list.prev, &device->link);
|
wl_list_insert(ec->input_device_list.prev, &device->link);
|
||||||
|
|
||||||
|
device->new_drag_icon_listener.func = device_handle_new_drag_icon;
|
||||||
|
wl_list_insert(device->input_device.drag_icon_listener_list.prev,
|
||||||
|
&device->new_drag_icon_listener.link);
|
||||||
}
|
}
|
||||||
|
|
||||||
WL_EXPORT void
|
WL_EXPORT void
|
||||||
|
@ -121,6 +121,8 @@ struct weston_input_device {
|
|||||||
struct wl_listener touch_focus_listener;
|
struct wl_listener touch_focus_listener;
|
||||||
struct wl_resource *touch_focus_resource;
|
struct wl_resource *touch_focus_resource;
|
||||||
struct wl_listener touch_focus_resource_listener;
|
struct wl_listener touch_focus_resource_listener;
|
||||||
|
|
||||||
|
struct wl_listener new_drag_icon_listener;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct weston_shader {
|
struct weston_shader {
|
||||||
|
@ -1555,8 +1555,6 @@ map(struct weston_shell *base, struct weston_surface *surface,
|
|||||||
surface->geometry.height = height;
|
surface->geometry.height = height;
|
||||||
surface->geometry.dirty = 1;
|
surface->geometry.dirty = 1;
|
||||||
|
|
||||||
weston_compositor_update_drag_surfaces(compositor);
|
|
||||||
|
|
||||||
/* initial positioning, see also configure() */
|
/* initial positioning, see also configure() */
|
||||||
switch (surface_type) {
|
switch (surface_type) {
|
||||||
case SHELL_SURFACE_TOPLEVEL:
|
case SHELL_SURFACE_TOPLEVEL:
|
||||||
|
Loading…
Reference in New Issue
Block a user