Clear input regions if they're ignored

This commit is contained in:
Kirill Primak 2023-06-06 13:28:31 +03:00
parent 4c9eb6839d
commit 2acc74a3db
3 changed files with 4 additions and 3 deletions

View file

@ -350,6 +350,7 @@ static void drag_handle_drag_source_destroy(struct wl_listener *listener,
static void drag_icon_surface_role_commit(struct wlr_surface *surface) {
assert(surface->role == &drag_icon_surface_role);
pixman_region32_clear(&surface->input_region);
if (wlr_surface_has_buffer(surface)) {
wlr_surface_map(surface);
}
@ -383,9 +384,7 @@ static struct wlr_drag_icon *drag_icon_create(struct wlr_drag *drag,
icon->surface->role_data = icon;
if (wlr_surface_has_buffer(surface)) {
wlr_surface_map(surface);
}
drag_icon_surface_role_commit(surface);
return icon;
}

View file

@ -71,6 +71,7 @@ struct wlr_seat_client *wlr_seat_client_from_pointer_resource(
}
static void pointer_cursor_surface_handle_commit(struct wlr_surface *surface) {
pixman_region32_clear(&surface->input_region);
if (wlr_surface_has_buffer(surface)) {
wlr_surface_map(surface);
}

View file

@ -17,6 +17,7 @@
static const struct wlr_tablet_tool_v2_grab_interface default_tool_grab_interface;
static void tablet_tool_cursor_surface_handle_commit(struct wlr_surface *surface) {
pixman_region32_clear(&surface->input_region);
if (wlr_surface_has_buffer(surface)) {
wlr_surface_map(surface);
}