From: Benjamin Otte Date: Mon, 20 Dec 2010 12:45:31 +0000 (+0100) Subject: gdk: Make display a property of GdkCursor X-Git-Url: http://pileus.org/git/?a=commitdiff_plain;h=7a14b30ea37d4cb9b021df3d9d6036cb15f19df1;p=~andy%2Fgtk gdk: Make display a property of GdkCursor --- diff --git a/gdk/gdkcursor.c b/gdk/gdkcursor.c index 9e27829cf..236947822 100644 --- a/gdk/gdkcursor.c +++ b/gdk/gdkcursor.c @@ -62,7 +62,8 @@ enum { PROP_0, - PROP_CURSOR_TYPE + PROP_CURSOR_TYPE, + PROP_DISPLAY }; G_DEFINE_ABSTRACT_TYPE (GdkCursor, gdk_cursor, G_TYPE_OBJECT) @@ -80,6 +81,9 @@ gdk_cursor_get_property (GObject *object, case PROP_CURSOR_TYPE: g_value_set_enum (value, cursor->type); break; + case PROP_DISPLAY: + g_value_set_object (value, cursor->display); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -99,6 +103,11 @@ gdk_cursor_set_property (GObject *object, case PROP_CURSOR_TYPE: cursor->type = g_value_get_enum (value); break; + case PROP_DISPLAY: + cursor->display = g_value_get_object (value); + /* check that implementations actually provide the display when constructing */ + g_assert (cursor->display != NULL); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -120,6 +129,14 @@ gdk_cursor_class_init (GdkCursorClass *cursor_class) P_("Standard cursor type"), GDK_TYPE_CURSOR_TYPE, GDK_X_CURSOR, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + g_object_class_install_property (object_class, + PROP_DISPLAY, + g_param_spec_object ("display", + P_("Display"), + P_("Display of this cursor"), + GDK_TYPE_DISPLAY, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); } static void diff --git a/gdk/gdkcursorprivate.h b/gdk/gdkcursorprivate.h index 138101045..51501d190 100644 --- a/gdk/gdkcursorprivate.h +++ b/gdk/gdkcursorprivate.h @@ -39,6 +39,7 @@ struct _GdkCursor /*< private >*/ GdkCursorType type; + GdkDisplay *display; }; struct _GdkCursorClass diff --git a/gdk/x11/gdkcursor-x11.c b/gdk/x11/gdkcursor-x11.c index 9d6498999..ac579ab8a 100644 --- a/gdk/x11/gdkcursor-x11.c +++ b/gdk/x11/gdkcursor-x11.c @@ -276,6 +276,7 @@ _gdk_x11_display_get_cursor_for_type (GdkDisplay *display, private = g_object_new (GDK_TYPE_X11_CURSOR, "cursor-type", GDK_CURSOR_IS_PIXMAP, + "display", display, NULL); private->display = display; private->xcursor = xcursor; @@ -638,6 +639,7 @@ _gdk_x11_display_get_cursor_for_pixbuf (GdkDisplay *display, private = g_object_new (GDK_TYPE_X11_CURSOR, "cursor-type", GDK_CURSOR_IS_PIXMAP, + "display", display, NULL); private->display = display; private->xcursor = xcursor; @@ -679,6 +681,7 @@ _gdk_x11_display_get_cursor_for_name (GdkDisplay *display, private = g_object_new (GDK_TYPE_X11_CURSOR, "cursor-type", GDK_CURSOR_IS_PIXMAP, + "display", display, NULL); private->display = display; private->xcursor = xcursor; @@ -744,6 +747,7 @@ gdk_cursor_new_from_pixmap (GdkDisplay *display, source_pixmap, mask_pixmap, &xfg, &xbg, x, y); private = g_object_new (GDK_TYPE_X11_CURSOR, "cursor-type", GDK_CURSOR_IS_PIXMAP, + "display", display, NULL); private->display = display; private->xcursor = xcursor;