From 6cd6409ba2a484170bb6fb1c1282635dd6078e28 Mon Sep 17 00:00:00 2001 From: Nikita Ivanov Date: Sun, 23 Jul 2023 04:17:11 +0200 Subject: [PATCH 1/2] Revert, sometimes the cursor icon is incorrect This reverts commit 62bd47f220531ed5db65bd9937e852e06bd39a53. --- dwlb.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/dwlb.c b/dwlb.c index b445e8b..7e843e9 100644 --- a/dwlb.c +++ b/dwlb.c @@ -589,6 +589,18 @@ pointer_enter(void *data, struct wl_pointer *pointer, break; } } + + if (!cursor_image) { + struct wl_cursor_theme *cursor_theme = wl_cursor_theme_load(NULL, 24 * buffer_scale, shm); + cursor_image = wl_cursor_theme_get_cursor(cursor_theme, "left_ptr")->images[0]; + cursor_surface = wl_compositor_create_surface(compositor); + wl_surface_set_buffer_scale(cursor_surface, buffer_scale); + wl_surface_attach(cursor_surface, wl_cursor_image_get_buffer(cursor_image), 0, 0); + wl_surface_commit(cursor_surface); + } + wl_pointer_set_cursor(pointer, serial, cursor_surface, + cursor_image->hotspot_x, + cursor_image->hotspot_y); } static void From f2e4a19158a41c8b92a0ed28b4e612b391550d91 Mon Sep 17 00:00:00 2001 From: Nikita Ivanov Date: Fri, 21 Jul 2023 16:49:44 +0200 Subject: [PATCH 2/2] Set cursor theme and size from XCURSOR --- dwlb.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dwlb.c b/dwlb.c index 7e843e9..f512caa 100644 --- a/dwlb.c +++ b/dwlb.c @@ -591,7 +591,11 @@ pointer_enter(void *data, struct wl_pointer *pointer, } if (!cursor_image) { - struct wl_cursor_theme *cursor_theme = wl_cursor_theme_load(NULL, 24 * buffer_scale, shm); + const char *size_str = getenv("XCURSOR_SIZE"); + int size = size_str ? atoi(size_str) : 0; + if (size == 0) + size = 24; + struct wl_cursor_theme *cursor_theme = wl_cursor_theme_load(getenv("XCURSOR_THEME"), size * buffer_scale, shm); cursor_image = wl_cursor_theme_get_cursor(cursor_theme, "left_ptr")->images[0]; cursor_surface = wl_compositor_create_surface(compositor); wl_surface_set_buffer_scale(cursor_surface, buffer_scale);