summaryrefslogtreecommitdiff
path: root/gdk/gdkselection.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdk/gdkselection.c')
-rw-r--r--gdk/gdkselection.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gdk/gdkselection.c b/gdk/gdkselection.c
index f1fb5c6109..b8f1c9ff60 100644
--- a/gdk/gdkselection.c
+++ b/gdk/gdkselection.c
@@ -29,13 +29,17 @@ gdk_selection_owner_set (GdkWindow *owner,
guint32 time,
gint send_event)
{
- GdkWindowPrivate *private;
Display *xdisplay;
Window xwindow;
if (owner)
{
+ GdkWindowPrivate *private;
+
private = (GdkWindowPrivate*) owner;
+ if (private->destroyed)
+ return FALSE;
+
xdisplay = private->xdisplay;
xwindow = private->xwindow;
}
@@ -73,6 +77,8 @@ gdk_selection_convert (GdkWindow *requestor,
g_return_if_fail (requestor != NULL);
private = (GdkWindowPrivate*) requestor;
+ if (private->destroyed)
+ return;
XConvertSelection (private->xdisplay, selection, target,
gdk_selection_property, private->xwindow, time);
@@ -99,6 +105,8 @@ gdk_selection_property_get (GdkWindow *requestor,
moderate length, to avoid two round trips to the server */
private = (GdkWindowPrivate*) requestor;
+ if (private->destroyed)
+ return 0;
XGetWindowProperty (private->xdisplay, private->xwindow,
gdk_selection_property, 0, 0, False,