Browse Source

wayland: Add support for XCURSOR_THEME/SIZE

Ethan Lee 3 years ago
parent
commit
0fc43504a0
1 changed files with 11 additions and 2 deletions
  1. 11 2
      src/video/wayland/SDL_waylandmouse.c

+ 11 - 2
src/video/wayland/SDL_waylandmouse.c

@@ -60,6 +60,9 @@ wayland_get_system_cursor(SDL_VideoData *vdata, Wayland_CursorData *cdata, float
     struct wl_cursor_theme *theme = NULL;
     struct wl_cursor_theme *theme = NULL;
     struct wl_cursor *cursor;
     struct wl_cursor *cursor;
 
 
+    char *xcursor_size;
+    int size = 0;
+
     SDL_Window *focus;
     SDL_Window *focus;
     SDL_WindowData *focusdata;
     SDL_WindowData *focusdata;
     int i;
     int i;
@@ -70,7 +73,13 @@ wayland_get_system_cursor(SDL_VideoData *vdata, Wayland_CursorData *cdata, float
      * for real, but for now this is a pretty safe bet.
      * for real, but for now this is a pretty safe bet.
      * -flibit
      * -flibit
      */
      */
-    int size = 24;
+    xcursor_size = SDL_getenv("XCURSOR_SIZE");
+    if (xcursor_size != NULL) {
+        size = SDL_atoi(xcursor_size);
+    }
+    if (size <= 0) {
+        size = 24;
+    }
 
 
     /* First, find the appropriate theme based on the current scale... */
     /* First, find the appropriate theme based on the current scale... */
     focus = SDL_GetMouse()->focus;
     focus = SDL_GetMouse()->focus;
@@ -94,7 +103,7 @@ wayland_get_system_cursor(SDL_VideoData *vdata, Wayland_CursorData *cdata, float
             SDL_OutOfMemory();
             SDL_OutOfMemory();
             return SDL_FALSE;
             return SDL_FALSE;
         }
         }
-        theme = WAYLAND_wl_cursor_theme_load(NULL, size, vdata->shm);
+        theme = WAYLAND_wl_cursor_theme_load(SDL_getenv("XCURSOR_THEME"), size, vdata->shm);
         vdata->cursor_themes[vdata->num_cursor_themes].size = size;
         vdata->cursor_themes[vdata->num_cursor_themes].size = size;
         vdata->cursor_themes[vdata->num_cursor_themes++].theme = theme;
         vdata->cursor_themes[vdata->num_cursor_themes++].theme = theme;
     }
     }