From fd91178d7f9b268299a9c1e99e2be757617c4acf Mon Sep 17 00:00:00 2001 From: Zack Middleton Date: Mon, 20 Nov 2023 21:34:55 -0600 Subject: [PATCH] Make size cursors be double arrows on Wayland I added fallbacks as they are listed under "to be discussed" in the spec but I don't know if they're necessary. https://www.freedesktop.org/wiki/Specifications/cursor-spec/ --- src/video/wayland/SDL_waylandmouse.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/video/wayland/SDL_waylandmouse.c b/src/video/wayland/SDL_waylandmouse.c index de209e776c..7012c2fb19 100644 --- a/src/video/wayland/SDL_waylandmouse.c +++ b/src/video/wayland/SDL_waylandmouse.c @@ -336,19 +336,33 @@ static SDL_bool wayland_get_system_cursor(SDL_VideoData *vdata, Wayland_CursorDa cursor = WAYLAND_wl_cursor_theme_get_cursor(theme, "progress"); break; case SDL_SYSTEM_CURSOR_SIZENWSE: - cursor = WAYLAND_wl_cursor_theme_get_cursor(theme, "nw-resize"); + cursor = WAYLAND_wl_cursor_theme_get_cursor(theme, "nwse-resize"); + if (!cursor) { + /* only a single arrow */ + cursor = WAYLAND_wl_cursor_theme_get_cursor(theme, "nw-resize"); + } break; case SDL_SYSTEM_CURSOR_SIZENESW: - cursor = WAYLAND_wl_cursor_theme_get_cursor(theme, "ne-resize"); + cursor = WAYLAND_wl_cursor_theme_get_cursor(theme, "nesw-resize"); + if (!cursor) { + /* only a single arrow */ + cursor = WAYLAND_wl_cursor_theme_get_cursor(theme, "ne-resize"); + } break; case SDL_SYSTEM_CURSOR_SIZEWE: - cursor = WAYLAND_wl_cursor_theme_get_cursor(theme, "e-resize"); + cursor = WAYLAND_wl_cursor_theme_get_cursor(theme, "ew-resize"); + if (!cursor) { + cursor = WAYLAND_wl_cursor_theme_get_cursor(theme, "col-resize"); + } break; case SDL_SYSTEM_CURSOR_SIZENS: - cursor = WAYLAND_wl_cursor_theme_get_cursor(theme, "n-resize"); + cursor = WAYLAND_wl_cursor_theme_get_cursor(theme, "ns-resize"); + if (!cursor) { + cursor = WAYLAND_wl_cursor_theme_get_cursor(theme, "row-resize"); + } break; case SDL_SYSTEM_CURSOR_SIZEALL: - cursor = WAYLAND_wl_cursor_theme_get_cursor(theme, "fleur"); // ? + cursor = WAYLAND_wl_cursor_theme_get_cursor(theme, "all-scroll"); break; case SDL_SYSTEM_CURSOR_NO: cursor = WAYLAND_wl_cursor_theme_get_cursor(theme, "not-allowed");