Implement damage tracking

Fixes #5.
This commit is contained in:
Jente Hidskes 2019-01-20 13:42:36 +01:00
parent f0eb115bda
commit e981cb8a1c
10 changed files with 271 additions and 28 deletions

10
seat.c
View file

@ -528,12 +528,20 @@ handle_cursor_motion(struct wl_listener *listener, void *data)
wlr_idle_notify_activity(seat->server->idle, seat->seat);
}
static void
drag_icon_damage(struct cg_drag_icon *drag_icon)
{
output_damage_drag_icon(drag_icon->seat->server->output, drag_icon);
}
static void
drag_icon_update_position(struct cg_drag_icon *drag_icon)
{
struct wlr_drag_icon *wlr_icon = drag_icon->wlr_drag_icon;
struct cg_seat *seat = drag_icon->seat;
drag_icon_damage(drag_icon);
if (wlr_icon->is_pointer) {
drag_icon->x = seat->cursor->x;
drag_icon->y = seat->cursor->y;
@ -546,6 +554,8 @@ drag_icon_update_position(struct cg_drag_icon *drag_icon)
drag_icon->x = seat->touch_x;
drag_icon->y = seat->touch_y;
}
drag_icon_damage(drag_icon);
}
static void