aboutsummaryrefslogtreecommitdiff
path: root/swaybar/input.c
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2023-07-30 16:07:28 -0400
committerFurkan Sahin <furkan-dev@proton.me>2023-07-30 16:07:28 -0400
commitb7c650df2781d28a2a4517865379c89c5309c0c4 (patch)
treef5957adacfa52e77ac49ff7fda958b5f385a96af /swaybar/input.c
parente113d31fa515a797b725becb32887d59ed656a68 (diff)
swaybar: Implement wp_cursor_shape_v1
Diffstat (limited to 'swaybar/input.c')
-rw-r--r--swaybar/input.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/swaybar/input.c b/swaybar/input.c
index 1e6ace00..ada4bc86 100644
--- a/swaybar/input.c
+++ b/swaybar/input.c
@@ -111,7 +111,7 @@ static void wl_pointer_enter(void *data, struct wl_pointer *wl_pointer,
struct swaybar_pointer *pointer = &seat->pointer;
seat->pointer.x = wl_fixed_to_double(surface_x);
seat->pointer.y = wl_fixed_to_double(surface_y);
- pointer->serial = serial;
+
struct swaybar_output *output;
wl_list_for_each(output, &seat->bar->outputs, link) {
if (output->surface == surface) {
@@ -119,7 +119,18 @@ static void wl_pointer_enter(void *data, struct wl_pointer *wl_pointer,
break;
}
}
- update_cursor(seat);
+
+ if (seat->bar->cursor_shape_manager) {
+ struct wp_cursor_shape_device_v1 *device =
+ wp_cursor_shape_manager_v1_get_pointer(
+ seat->bar->cursor_shape_manager, wl_pointer);
+ wp_cursor_shape_device_v1_set_shape(device, serial,
+ WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_DEFAULT);
+ wp_cursor_shape_device_v1_destroy(device);
+ } else {
+ pointer->serial = serial;
+ update_cursor(seat);
+ }
}
static void wl_pointer_leave(void *data, struct wl_pointer *wl_pointer,