SDL: Make size cursors be double arrows on Wayland

From fd91178d7f9b268299a9c1e99e2be757617c4acf Mon Sep 17 00:00:00 2001
From: Zack Middleton <[EMAIL REDACTED]>
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 de209e776c52..7012c2fb1945 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");