diff --git a/src/compositor/meta-surface-actor-x11.c b/src/compositor/meta-surface-actor-x11.c index bdc5501f5..c91eb0ca3 100644 --- a/src/compositor/meta-surface-actor-x11.c +++ b/src/compositor/meta-surface-actor-x11.c @@ -71,11 +71,13 @@ static void free_damage (MetaSurfaceActorX11 *self) { MetaDisplay *display = self->display; - Display *xdisplay = meta_x11_display_get_xdisplay (display->x11_display); + Display *xdisplay; if (self->damage == None) return; + xdisplay = meta_x11_display_get_xdisplay (display->x11_display); + meta_x11_error_trap_push (display->x11_display); XDamageDestroy (xdisplay, self->damage); self->damage = None; @@ -86,12 +88,14 @@ static void detach_pixmap (MetaSurfaceActorX11 *self) { MetaDisplay *display = self->display; - Display *xdisplay = meta_x11_display_get_xdisplay (display->x11_display); MetaShapedTexture *stex = meta_surface_actor_get_texture (META_SURFACE_ACTOR (self)); + Display *xdisplay; if (self->pixmap == None) return; + xdisplay = meta_x11_display_get_xdisplay (display->x11_display); + /* Get rid of all references to the pixmap before freeing it; it's unclear whether * you are supposed to be able to free a GLXPixmap after freeing the underlying * pixmap, but it certainly doesn't work with current DRI/Mesa