From 3c3efee0fa05e80aeda09b3b69f7ee20fed12031 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Wed, 12 Aug 2009 19:43:08 +0200 Subject: [PATCH] Delay core pointer creation until the display is available. --- gdk/x11/gdkdevicemanager-core.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/gdk/x11/gdkdevicemanager-core.c b/gdk/x11/gdkdevicemanager-core.c index f4dce3f5b8..4775a835c4 100644 --- a/gdk/x11/gdkdevicemanager-core.c +++ b/gdk/x11/gdkdevicemanager-core.c @@ -33,6 +33,8 @@ #define HAS_FOCUS(toplevel) \ ((toplevel)->has_focus || (toplevel)->has_pointer_focus) +static void gdk_device_manager_core_constructed (GObject *object); + static GList * gdk_device_manager_core_get_devices (GdkDeviceManager *device_manager, GdkDeviceType type); @@ -54,7 +56,9 @@ static void gdk_device_manager_core_class_init (GdkDeviceManagerCoreClass *klass) { GdkDeviceManagerClass *device_manager_class = GDK_DEVICE_MANAGER_CLASS (klass); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + object_class->constructed = gdk_device_manager_core_constructed; device_manager_class->get_devices = gdk_device_manager_core_get_devices; } @@ -79,11 +83,16 @@ create_core_pointer (GdkDisplay *display) static void gdk_device_manager_core_init (GdkDeviceManagerCore *device_manager) +{ +} + +static void +gdk_device_manager_core_constructed (GObject *object) { GdkDisplay *display; - display = gdk_device_manager_get_display (GDK_DEVICE_MANAGER (device_manager)); - device_manager->core_pointer = create_core_pointer (display); + display = gdk_device_manager_get_display (GDK_DEVICE_MANAGER (object)); + GDK_DEVICE_MANAGER_CORE (object)->core_pointer = create_core_pointer (display); } static void