aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--types/data_device/wlr_drag.c5
-rw-r--r--types/seat/wlr_seat_pointer.c1
-rw-r--r--types/tablet_v2/wlr_tablet_v2_tool.c1
3 files changed, 4 insertions, 3 deletions
diff --git a/types/data_device/wlr_drag.c b/types/data_device/wlr_drag.c
index 0393f283..93614774 100644
--- a/types/data_device/wlr_drag.c
+++ b/types/data_device/wlr_drag.c
@@ -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;
}
diff --git a/types/seat/wlr_seat_pointer.c b/types/seat/wlr_seat_pointer.c
index b5eb84f7..ab1bb830 100644
--- a/types/seat/wlr_seat_pointer.c
+++ b/types/seat/wlr_seat_pointer.c
@@ -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);
}
diff --git a/types/tablet_v2/wlr_tablet_v2_tool.c b/types/tablet_v2/wlr_tablet_v2_tool.c
index cbd98fe1..dffa64a4 100644
--- a/types/tablet_v2/wlr_tablet_v2_tool.c
+++ b/types/tablet_v2/wlr_tablet_v2_tool.c
@@ -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);
}