diff options
Diffstat (limited to 'gdk/gdkpixmap.c')
-rw-r--r-- | gdk/gdkpixmap.c | 18 |
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; |