Add a vfunc for gdk_selection_convert

This commit is contained in:
Matthias Clasen 2010-12-16 20:25:32 -05:00
parent 95868ef00b
commit 05497c799a
5 changed files with 33 additions and 8 deletions

View 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,

View 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);
}

View 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;
}

View 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);

View 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),