From: Matthias Clasen Date: Fri, 17 Dec 2010 01:25:32 +0000 (-0500) Subject: Add a vfunc for gdk_selection_convert X-Git-Url: http://pileus.org/git/?a=commitdiff_plain;h=05497c799ad2da29001534b30d53e6d8eb48cbf4;p=~andy%2Fgtk Add a vfunc for gdk_selection_convert --- diff --git a/gdk/gdkdisplayprivate.h b/gdk/gdkdisplayprivate.h index a2575d885..f589581d7 100644 --- a/gdk/gdkdisplayprivate.h +++ b/gdk/gdkdisplayprivate.h @@ -208,12 +208,17 @@ struct _GdkDisplayClass GdkAtom selection, GdkAtom target, GdkAtom property, - guint32 time_); + guint32 time); gint (*get_selection_property) (GdkDisplay *display, GdkWindow *requestor, guchar **data, GdkAtom *type, gint *format); + void (*convert_selection) (GdkDisplay *display, + GdkWindow *requestor, + GdkAtom selection, + GdkAtom target, + guint32 time); /* Signals */ void (*closed) (GdkDisplay *display, diff --git a/gdk/gdkselection.c b/gdk/gdkselection.c index 80131889c..c50a3f70d 100644 --- a/gdk/gdkselection.c +++ b/gdk/gdkselection.c @@ -370,3 +370,19 @@ gdk_selection_property_get (GdkWindow *requestor, return GDK_DISPLAY_GET_CLASS (display) ->get_selection_property (display, requestor, data, ret_type, ret_format); } + +void +gdk_selection_convert (GdkWindow *requestor, + GdkAtom selection, + GdkAtom target, + guint32 time) +{ + GdkDisplay *display; + + g_return_if_fail (selection != GDK_NONE); + + display = gdk_window_get_display (requestor); + + GDK_DISPLAY_GET_CLASS (display) + ->convert_selection (display, requestor, selection, target, time); +} diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index 26e1b9457..cbba5aaae 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -2764,4 +2764,5 @@ _gdk_display_x11_class_init (GdkDisplayX11Class * class) display_class->set_selection_owner = _gdk_x11_display_set_selection_owner; display_class->send_selection_notify = _gdk_x11_display_send_selection_notify; display_class->get_selection_property = _gdk_x11_display_get_selection_property; + display_class->convert_selection = _gdk_x11_display_convert_selection; } diff --git a/gdk/x11/gdkprivate-x11.h b/gdk/x11/gdkprivate-x11.h index d33b240e0..c630c3170 100644 --- a/gdk/x11/gdkprivate-x11.h +++ b/gdk/x11/gdkprivate-x11.h @@ -207,6 +207,11 @@ gint _gdk_x11_display_get_selection_property (GdkDisplay *display, guchar **data, GdkAtom *ret_type, gint *ret_format); +void _gdk_x11_display_convert_selection (GdkDisplay *display, + GdkWindow *requestor, + GdkAtom selection, + GdkAtom target, + guint32 time); void _gdk_x11_device_check_extension_events (GdkDevice *device); diff --git a/gdk/x11/gdkselection-x11.c b/gdk/x11/gdkselection-x11.c index 52d0394fa..4331258cc 100644 --- a/gdk/x11/gdkselection-x11.c +++ b/gdk/x11/gdkselection-x11.c @@ -182,20 +182,18 @@ _gdk_x11_display_get_selection_owner (GdkDisplay *display, } void -gdk_selection_convert (GdkWindow *requestor, - GdkAtom selection, - GdkAtom target, - guint32 time) +_gdk_x11_display_convert_selection (GdkDisplay *display, + GdkWindow *requestor, + GdkAtom selection, + GdkAtom target, + guint32 time) { - GdkDisplay *display; - g_return_if_fail (selection != GDK_NONE); if (GDK_WINDOW_DESTROYED (requestor) || !GDK_WINDOW_IS_X11 (requestor)) return; gdk_window_ensure_native (requestor); - display = GDK_WINDOW_DISPLAY (requestor); XConvertSelection (GDK_WINDOW_XDISPLAY (requestor), gdk_x11_atom_to_xatom_for_display (display, selection),