]> Pileus Git - ~andy/gtk/commitdiff
Add a vfunc for gdk_selection_convert
authorMatthias Clasen <mclasen@redhat.com>
Fri, 17 Dec 2010 01:25:32 +0000 (20:25 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 21 Dec 2010 17:07:03 +0000 (12:07 -0500)
gdk/gdkdisplayprivate.h
gdk/gdkselection.c
gdk/x11/gdkdisplay-x11.c
gdk/x11/gdkprivate-x11.h
gdk/x11/gdkselection-x11.c

index a2575d88517ab2ae597310b9786ab0ffc13d00b8..f589581d7eaf3821d41acaf8a2691f936b54290d 100644 (file)
@@ -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,
index 80131889c302104362a3fa1a53ded3f129eee8ea..c50a3f70d366de5e370131f474e7f0aa6cf55ad7 100644 (file)
@@ -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);
+}
index 26e1b94575e5147ce8662f11c570409a8cd4a93d..cbba5aaae18f3b71751e43caee092c467881b9aa 100644 (file)
@@ -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;
 }
index d33b240e081d9e893d2f98824ed3a6e259af3f66..c630c31706a05f93022dd780df4778d9286609b1 100644 (file)
@@ -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);
 
index 52d0394fa446995c90ee675549bb06b4ee42d7a9..4331258cc53803aeb7bdaab9fc6b36218e661ba0 100644 (file)
@@ -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),