Clear input regions if they're ignored

master
Kirill Primak 1 year ago
parent 4c9eb6839d
commit 2acc74a3db

@ -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) { static void drag_icon_surface_role_commit(struct wlr_surface *surface) {
assert(surface->role == &drag_icon_surface_role); assert(surface->role == &drag_icon_surface_role);
pixman_region32_clear(&surface->input_region);
if (wlr_surface_has_buffer(surface)) { if (wlr_surface_has_buffer(surface)) {
wlr_surface_map(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; icon->surface->role_data = icon;
if (wlr_surface_has_buffer(surface)) { drag_icon_surface_role_commit(surface);
wlr_surface_map(surface);
}
return icon; return icon;
} }

@ -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) { static void pointer_cursor_surface_handle_commit(struct wlr_surface *surface) {
pixman_region32_clear(&surface->input_region);
if (wlr_surface_has_buffer(surface)) { if (wlr_surface_has_buffer(surface)) {
wlr_surface_map(surface); wlr_surface_map(surface);
} }

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

Loading…
Cancel
Save