#include "gdkkeysprivate.h"
#include "gdkprivate-wayland.h"
+static void _gdk_wayland_display_load_cursor_theme (GdkWaylandDisplay *wayland_display);
+
G_DEFINE_TYPE (GdkWaylandDisplay, _gdk_wayland_display, GDK_TYPE_DISPLAY)
static void
wl_display_bind(display, id, &wl_compositor_interface);
} else if (strcmp(interface, "wl_shm") == 0) {
display_wayland->shm = wl_display_bind(display, id, &wl_shm_interface);
+
+ /* SHM interface is prerequisite */
+ _gdk_wayland_display_load_cursor_theme(display_wayland);
} else if (strcmp(interface, "wl_shell") == 0) {
display_wayland->shell = wl_display_bind(display, id, &wl_shell_interface);
} else if (strcmp(interface, "wl_output") == 0) {
_gdk_wayland_display_manager_add_display (gdk_display_manager_get (),
GDK_DISPLAY (display));
}
+
+static void
+_gdk_wayland_display_load_cursor_theme (GdkWaylandDisplay *wayland_display)
+{
+ guint w, h;
+ gchar *theme_name = NULL; /* FIXME: Do something here */
+
+ g_assert (wayland_display);
+ g_assert (wayland_display->shm);
+
+ _gdk_wayland_display_get_default_cursor_size (GDK_DISPLAY (wayland_display),
+ &w, &h);
+
+ wayland_display->cursor_theme = wl_cursor_theme_load (theme_name,
+ w,
+ wayland_display->shm);
+}
#include <config.h>
#include <stdint.h>
#include <wayland-client.h>
+#include <wayland-cursor.h>
#ifdef GDK_WAYLAND_USE_EGL
#include <wayland-egl.h>
struct wl_output *output;
struct wl_input_device *input_device;
struct wl_data_device_manager *data_device_manager;
+
+ struct wl_cursor_theme *cursor_theme;
+
GSource *event_source;
#ifdef GDK_WAYLAND_USE_EGL