summaryrefslogtreecommitdiff
path: root/gdk/gdkpixmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdk/gdkpixmap.c')
-rw-r--r--gdk/gdkpixmap.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/gdk/gdkpixmap.c b/gdk/gdkpixmap.c
index e0f4d580b..48b072b91 100644
--- a/gdk/gdkpixmap.c
+++ b/gdk/gdkpixmap.c
@@ -46,14 +46,16 @@ gdk_pixmap_new (GdkWindow *window,
if (!window)
window = (GdkWindow*) &gdk_root_parent;
+ window_private = (GdkWindowPrivate*) window;
+ if (window_private->destroyed)
+ return NULL;
+
if (depth == -1)
gdk_window_get_geometry (window, NULL, NULL, NULL, NULL, &depth);
private = g_new (GdkWindowPrivate, 1);
pixmap = (GdkPixmap*) private;
- window_private = (GdkWindowPrivate*) window;
-
private->xdisplay = window_private->xdisplay;
private->window_type = GDK_WINDOW_PIXMAP;
private->xwindow = XCreatePixmap (private->xdisplay, window_private->xwindow,
@@ -87,11 +89,13 @@ gdk_bitmap_create_from_data (GdkWindow *window,
if (!window)
window = (GdkWindow*) &gdk_root_parent;
+ window_private = (GdkWindowPrivate*) window;
+ if (window_private->destroyed)
+ return NULL;
+
private = g_new (GdkWindowPrivate, 1);
pixmap = (GdkPixmap*) private;
- window_private = (GdkWindowPrivate*) window;
-
private->parent = NULL;
private->xdisplay = window_private->xdisplay;
private->window_type = GDK_WINDOW_PIXMAP;
@@ -132,14 +136,16 @@ gdk_pixmap_create_from_data (GdkWindow *window,
if (!window)
window = (GdkWindow*) &gdk_root_parent;
+ window_private = (GdkWindowPrivate*) window;
+ if (window_private->destroyed)
+ return NULL;
+
if (depth == -1)
gdk_window_get_geometry (window, NULL, NULL, NULL, NULL, &depth);
private = g_new (GdkWindowPrivate, 1);
pixmap = (GdkPixmap*) private;
- window_private = (GdkWindowPrivate*) window;
-
private->parent = NULL;
private->xdisplay = window_private->xdisplay;
private->window_type = GDK_WINDOW_PIXMAP;