output: fix cursor wl_surface.{enter,leave} tracking

This change ensures that wl_surface.leave is sent when a surface
associated with the cursor is disassociated (when the cursor is
reset).
This commit is contained in:
Manuel Stoeckl 2019-12-07 13:59:14 -05:00 committed by Simon Ser
parent 6ca82087b1
commit 8a5e4768e1
1 changed files with 3 additions and 0 deletions

View File

@ -791,6 +791,9 @@ static void output_cursor_reset(struct wlr_output_cursor *cursor) {
if (cursor->surface != NULL) { if (cursor->surface != NULL) {
wl_list_remove(&cursor->surface_commit.link); wl_list_remove(&cursor->surface_commit.link);
wl_list_remove(&cursor->surface_destroy.link); wl_list_remove(&cursor->surface_destroy.link);
if (cursor->visible) {
wlr_surface_send_leave(cursor->surface, cursor->output);
}
cursor->surface = NULL; cursor->surface = NULL;
} }
} }