mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-06 13:29:45 -05:00
rootston: damage tracking for drag icons
This commit is contained in:
parent
415a2b7c56
commit
2ad7df8680
9 changed files with 142 additions and 31 deletions
|
|
@ -454,6 +454,7 @@ static void wlr_drag_end(struct wlr_drag *drag) {
|
|||
if (drag->icon) {
|
||||
drag->icon->mapped = false;
|
||||
wl_list_remove(&drag->icon_destroy.link);
|
||||
wl_signal_emit(&drag->icon->events.map, drag->icon);
|
||||
}
|
||||
|
||||
free(drag);
|
||||
|
|
@ -673,8 +674,8 @@ static struct wlr_drag_icon *wlr_drag_icon_create(
|
|||
icon->is_pointer = is_pointer;
|
||||
icon->touch_id = touch_id;
|
||||
icon->mapped = true;
|
||||
wl_list_insert(&client->seat->drag_icons, &icon->link);
|
||||
|
||||
wl_signal_init(&icon->events.map);
|
||||
wl_signal_init(&icon->events.destroy);
|
||||
|
||||
wl_signal_add(&icon->surface->events.destroy, &icon->surface_destroy);
|
||||
|
|
@ -686,6 +687,9 @@ static struct wlr_drag_icon *wlr_drag_icon_create(
|
|||
wl_signal_add(&client->events.destroy, &icon->seat_client_destroy);
|
||||
icon->seat_client_destroy.notify = handle_drag_icon_seat_client_destroy;
|
||||
|
||||
wl_list_insert(&client->seat->drag_icons, &icon->link);
|
||||
wl_signal_emit(&client->seat->events.new_drag_icon, icon);
|
||||
|
||||
return icon;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -454,7 +454,10 @@ struct wlr_seat *wlr_seat_create(struct wl_display *display, const char *name) {
|
|||
wl_list_init(&wlr_seat->clients);
|
||||
wl_list_init(&wlr_seat->drag_icons);
|
||||
|
||||
wl_signal_init(&wlr_seat->events.new_drag_icon);
|
||||
|
||||
wl_signal_init(&wlr_seat->events.request_set_cursor);
|
||||
|
||||
wl_signal_init(&wlr_seat->events.selection);
|
||||
wl_signal_init(&wlr_seat->events.primary_selection);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue