[gtk+/wip/matthiasc/settings: 3/4] Add private api for setting cursor theme



commit c2f6208ce546da5e5585616f49af7753f3cce2b4
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri Nov 17 17:42:12 2017 -0500

    Add private api for setting cursor theme
    
    This is implemented in multiple gdk backends,
    and we can avoid and ugly ifdef cascade in gtk
    by adding a vfunc for this.

 gdk/gdk-private.h                |    3 +++
 gdk/gdkdisplay.c                 |    9 +++++++++
 gdk/gdkdisplayprivate.h          |    3 +++
 gdk/wayland/gdkdisplay-wayland.c |    1 +
 gdk/win32/gdkdisplay-win32.c     |    1 +
 gdk/x11/gdkdisplay-x11.c         |    1 +
 6 files changed, 18 insertions(+), 0 deletions(-)
---
diff --git a/gdk/gdk-private.h b/gdk/gdk-private.h
index 179da76..0ebbc9d 100644
--- a/gdk/gdk-private.h
+++ b/gdk/gdk-private.h
@@ -45,5 +45,8 @@ void gdk_display_set_double_click_time     (GdkDisplay   *display,
                                             guint         msec);
 void gdk_display_set_double_click_distance (GdkDisplay   *display,
                                             guint         distance);
+void gdk_display_set_cursor_theme          (GdkDisplay   *display,
+                                            const char   *theme,
+                                            int           size);
 
 #endif /* __GDK__PRIVATE_H__ */
diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c
index 5232fe3..39e9884 100644
--- a/gdk/gdkdisplay.c
+++ b/gdk/gdkdisplay.c
@@ -2038,3 +2038,12 @@ gdk_display_set_double_click_distance (GdkDisplay *display,
 {
   display->double_click_distance = distance;
 }
+
+void
+gdk_display_set_cursor_theme (GdkDisplay *display,
+                              const char *name,
+                              int         size)
+{
+  if (GDK_DISPLAY_GET_CLASS (display)->set_cursor_theme)
+    GDK_DISPLAY_GET_CLASS (display)->set_cursor_theme (display, name, size);
+}
diff --git a/gdk/gdkdisplayprivate.h b/gdk/gdkdisplayprivate.h
index d35f484..9c5dac2 100644
--- a/gdk/gdkdisplayprivate.h
+++ b/gdk/gdkdisplayprivate.h
@@ -220,6 +220,9 @@ struct _GdkDisplayClass
                                                         const char     *name,
                                                         GValue         *value);
   guint32                (*get_last_seen_time)         (GdkDisplay     *display);
+  void                   (*set_cursor_theme)           (GdkDisplay     *display,
+                                                        const char     *name,
+                                                        int             size);
 
   /* Signals */
   void                   (*opened)                     (GdkDisplay     *display);
diff --git a/gdk/wayland/gdkdisplay-wayland.c b/gdk/wayland/gdkdisplay-wayland.c
index c6063ea..950b0d5 100644
--- a/gdk/wayland/gdkdisplay-wayland.c
+++ b/gdk/wayland/gdkdisplay-wayland.c
@@ -1041,6 +1041,7 @@ gdk_wayland_display_class_init (GdkWaylandDisplayClass *class)
   display_class->get_monitor = gdk_wayland_display_get_monitor;
   display_class->get_monitor_at_window = gdk_wayland_display_get_monitor_at_window;
   display_class->get_setting = gdk_wayland_display_get_setting;
+  display_class->set_cursor_theme = gdk_wayland_display_set_cursor_theme;
 }
 
 static void
diff --git a/gdk/win32/gdkdisplay-win32.c b/gdk/win32/gdkdisplay-win32.c
index 4643f16..b13e6b7 100644
--- a/gdk/win32/gdkdisplay-win32.c
+++ b/gdk/win32/gdkdisplay-win32.c
@@ -1273,6 +1273,7 @@ gdk_win32_display_class_init (GdkWin32DisplayClass *klass)
 
   display_class->get_setting = gdk_win32_display_get_setting;
   display_class->get_last_seen_time = gdk_win32_display_get_last_seen_time;
+  display_class->set_cursor_theme = gdk_win32_display_set_cursor_theme;
 
   _gdk_win32_windowing_init ();
 }
diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c
index 4e022c6..245df4a 100644
--- a/gdk/x11/gdkdisplay-x11.c
+++ b/gdk/x11/gdkdisplay-x11.c
@@ -3222,6 +3222,7 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class)
   display_class->get_primary_monitor = gdk_x11_display_get_primary_monitor;
   display_class->get_setting = gdk_x11_display_get_setting;
   display_class->get_last_seen_time = gdk_x11_display_get_last_seen_time;
+  display_class->set_cursor_theme = gdk_x11_display_set_cursor_theme;
 
   _gdk_x11_windowing_init ();
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]