From a27d2413aadf0e90c7152a8fd4070429b63ac446 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 29 Jun 2013 19:22:51 -0400 Subject: [PATCH] GdkVisualX11: Add a dispose implementation We need to be able to drop X resources before finalization. --- gdk/x11/gdkvisual-x11.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/gdk/x11/gdkvisual-x11.c b/gdk/x11/gdkvisual-x11.c index b96c3a3e0c..9901051351 100644 --- a/gdk/x11/gdkvisual-x11.c +++ b/gdk/x11/gdkvisual-x11.c @@ -87,12 +87,28 @@ gdk_x11_visual_finalize (GObject *object) G_OBJECT_CLASS (gdk_x11_visual_parent_class)->finalize (object); } +static void +gdk_x11_visual_dispose (GObject *object) +{ + GdkVisual *visual = (GdkVisual *)object; + GdkX11Visual *x11_visual = (GdkX11Visual *)object; + + if (x11_visual->colormap != None) + { + XFreeColormap (GDK_SCREEN_XDISPLAY (visual->screen), x11_visual->colormap); + x11_visual->colormap = None; + } + + G_OBJECT_CLASS (gdk_x11_visual_parent_class)->dispose (object); +} + static void gdk_x11_visual_class_init (GdkX11VisualClass *class) { GObjectClass *object_class = G_OBJECT_CLASS (class); object_class->finalize = gdk_x11_visual_finalize; + object_class->dispose = gdk_x11_visual_dispose; } void