From d213ff4ee24a4a354b5cb74292871a3ecc82549c Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Mon, 10 Nov 2003 02:00:19 +0000 Subject: [PATCH] app/widgets/gimphistogramview.c destroy GdkGCs in GtkWidget::unrealize(). 2003-11-10 Michael Natterer * app/widgets/gimphistogramview.c * app/widgets/gimpnavigationpreview.c: destroy GdkGCs in GtkWidget::unrealize(). --- ChangeLog | 6 +++++ app/widgets/gimphistogramview.c | 31 +++++++++++---------- app/widgets/gimpnavigationpreview.c | 42 +++++++++++++---------------- app/widgets/gimpnavigationview.c | 42 +++++++++++++---------------- 4 files changed, 59 insertions(+), 62 deletions(-) diff --git a/ChangeLog b/ChangeLog index 70be60fa40..17f44cf65e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2003-11-10 Michael Natterer + + * app/widgets/gimphistogramview.c + * app/widgets/gimpnavigationpreview.c: destroy GdkGCs in + GtkWidget::unrealize(). + 2003-11-10 Sven Neumann * app/display/gimpcanvas.[ch] diff --git a/app/widgets/gimphistogramview.c b/app/widgets/gimphistogramview.c index 2d696fed06..e8427862e2 100644 --- a/app/widgets/gimphistogramview.c +++ b/app/widgets/gimphistogramview.c @@ -48,7 +48,6 @@ enum static void gimp_histogram_view_class_init (GimpHistogramViewClass *klass); static void gimp_histogram_view_init (GimpHistogramView *view); -static void gimp_histogram_view_finalize (GObject *object); static void gimp_histogram_view_set_property (GObject *object, guint property_id, const GValue *value, @@ -57,6 +56,7 @@ static void gimp_histogram_view_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec); +static void gimp_histogram_view_unrealize (GtkWidget *widget); static void gimp_histogram_view_size_request (GtkWidget *widget, GtkRequisition *requisition); static gboolean gimp_histogram_view_expose (GtkWidget *widget, @@ -120,8 +120,8 @@ gimp_histogram_view_class_init (GimpHistogramViewClass *klass) object_class->get_property = gimp_histogram_view_get_property; object_class->set_property = gimp_histogram_view_set_property; - object_class->finalize = gimp_histogram_view_finalize; + widget_class->unrealize = gimp_histogram_view_unrealize; widget_class->size_request = gimp_histogram_view_size_request; widget_class->expose_event = gimp_histogram_view_expose; @@ -150,18 +150,6 @@ gimp_histogram_view_init (GimpHistogramView *view) view->end = 255; } -static void -gimp_histogram_view_finalize (GObject *object) -{ - GimpHistogramView *view = GIMP_HISTOGRAM_VIEW (object); - - if (view->range_gc) - { - g_object_unref (view->range_gc); - view->range_gc = NULL; - } -} - static void gimp_histogram_view_set_property (GObject *object, guint property_id, @@ -208,6 +196,21 @@ gimp_histogram_view_get_property (GObject *object, } } +static void +gimp_histogram_view_unrealize (GtkWidget *widget) +{ + GimpHistogramView *view = GIMP_HISTOGRAM_VIEW (widget); + + if (view->range_gc) + { + g_object_unref (view->range_gc); + view->range_gc = NULL; + } + + if (GTK_WIDGET_CLASS (parent_class)->unrealize) + GTK_WIDGET_CLASS (parent_class)->unrealize (widget); +} + static void gimp_histogram_view_size_request (GtkWidget *widget, GtkRequisition *requisition) diff --git a/app/widgets/gimpnavigationpreview.c b/app/widgets/gimpnavigationpreview.c index ea826f7f5b..e915c2aade 100644 --- a/app/widgets/gimpnavigationpreview.c +++ b/app/widgets/gimpnavigationpreview.c @@ -53,8 +53,8 @@ enum static void gimp_navigation_preview_class_init (GimpNavigationPreviewClass *klass); static void gimp_navigation_preview_init (GimpNavigationPreview *preview); -static void gimp_navigation_preview_destroy (GtkObject *object); static void gimp_navigation_preview_realize (GtkWidget *widget); +static void gimp_navigation_preview_unrealize (GtkWidget *widget); static void gimp_navigation_preview_size_allocate (GtkWidget *widget, GtkAllocation *allocation); static gboolean gimp_navigation_preview_expose (GtkWidget *widget, @@ -111,10 +111,8 @@ gimp_navigation_preview_get_type (void) static void gimp_navigation_preview_class_init (GimpNavigationPreviewClass *klass) { - GtkObjectClass *object_class; GtkWidgetClass *widget_class; - object_class = GTK_OBJECT_CLASS (klass); widget_class = GTK_WIDGET_CLASS (klass); parent_class = g_type_class_peek_parent (klass); @@ -150,9 +148,8 @@ gimp_navigation_preview_class_init (GimpNavigationPreviewClass *klass) G_TYPE_NONE, 1, GDK_TYPE_SCROLL_DIRECTION); - object_class->destroy = gimp_navigation_preview_destroy; - widget_class->realize = gimp_navigation_preview_realize; + widget_class->unrealize = gimp_navigation_preview_unrealize; widget_class->size_allocate = gimp_navigation_preview_size_allocate; widget_class->expose_event = gimp_navigation_preview_expose; widget_class->button_press_event = gimp_navigation_preview_button_press; @@ -187,28 +184,10 @@ gimp_navigation_preview_init (GimpNavigationPreview *preview) preview->gc = NULL; } -static void -gimp_navigation_preview_destroy (GtkObject *object) -{ - GimpNavigationPreview *nav_preview; - - nav_preview = GIMP_NAVIGATION_PREVIEW (object); - - if (nav_preview->gc) - { - g_object_unref (nav_preview->gc); - nav_preview->gc = NULL; - } - - GTK_OBJECT_CLASS (parent_class)->destroy (object); -} - static void gimp_navigation_preview_realize (GtkWidget *widget) { - GimpNavigationPreview *nav_preview; - - nav_preview = GIMP_NAVIGATION_PREVIEW (widget); + GimpNavigationPreview *nav_preview = GIMP_NAVIGATION_PREVIEW (widget); if (GTK_WIDGET_CLASS (parent_class)->realize) GTK_WIDGET_CLASS (parent_class)->realize (widget); @@ -221,6 +200,21 @@ gimp_navigation_preview_realize (GtkWidget *widget) GDK_LINE_SOLID, GDK_CAP_BUTT, GDK_JOIN_ROUND); } +static void +gimp_navigation_preview_unrealize (GtkWidget *widget) +{ + GimpNavigationPreview *nav_preview = GIMP_NAVIGATION_PREVIEW (widget); + + if (nav_preview->gc) + { + g_object_unref (nav_preview->gc); + nav_preview->gc = NULL; + } + + if (GTK_WIDGET_CLASS (parent_class)->unrealize) + GTK_WIDGET_CLASS (parent_class)->unrealize (widget); +} + static void gimp_navigation_preview_size_allocate (GtkWidget *widget, GtkAllocation *allocation) diff --git a/app/widgets/gimpnavigationview.c b/app/widgets/gimpnavigationview.c index ea826f7f5b..e915c2aade 100644 --- a/app/widgets/gimpnavigationview.c +++ b/app/widgets/gimpnavigationview.c @@ -53,8 +53,8 @@ enum static void gimp_navigation_preview_class_init (GimpNavigationPreviewClass *klass); static void gimp_navigation_preview_init (GimpNavigationPreview *preview); -static void gimp_navigation_preview_destroy (GtkObject *object); static void gimp_navigation_preview_realize (GtkWidget *widget); +static void gimp_navigation_preview_unrealize (GtkWidget *widget); static void gimp_navigation_preview_size_allocate (GtkWidget *widget, GtkAllocation *allocation); static gboolean gimp_navigation_preview_expose (GtkWidget *widget, @@ -111,10 +111,8 @@ gimp_navigation_preview_get_type (void) static void gimp_navigation_preview_class_init (GimpNavigationPreviewClass *klass) { - GtkObjectClass *object_class; GtkWidgetClass *widget_class; - object_class = GTK_OBJECT_CLASS (klass); widget_class = GTK_WIDGET_CLASS (klass); parent_class = g_type_class_peek_parent (klass); @@ -150,9 +148,8 @@ gimp_navigation_preview_class_init (GimpNavigationPreviewClass *klass) G_TYPE_NONE, 1, GDK_TYPE_SCROLL_DIRECTION); - object_class->destroy = gimp_navigation_preview_destroy; - widget_class->realize = gimp_navigation_preview_realize; + widget_class->unrealize = gimp_navigation_preview_unrealize; widget_class->size_allocate = gimp_navigation_preview_size_allocate; widget_class->expose_event = gimp_navigation_preview_expose; widget_class->button_press_event = gimp_navigation_preview_button_press; @@ -187,28 +184,10 @@ gimp_navigation_preview_init (GimpNavigationPreview *preview) preview->gc = NULL; } -static void -gimp_navigation_preview_destroy (GtkObject *object) -{ - GimpNavigationPreview *nav_preview; - - nav_preview = GIMP_NAVIGATION_PREVIEW (object); - - if (nav_preview->gc) - { - g_object_unref (nav_preview->gc); - nav_preview->gc = NULL; - } - - GTK_OBJECT_CLASS (parent_class)->destroy (object); -} - static void gimp_navigation_preview_realize (GtkWidget *widget) { - GimpNavigationPreview *nav_preview; - - nav_preview = GIMP_NAVIGATION_PREVIEW (widget); + GimpNavigationPreview *nav_preview = GIMP_NAVIGATION_PREVIEW (widget); if (GTK_WIDGET_CLASS (parent_class)->realize) GTK_WIDGET_CLASS (parent_class)->realize (widget); @@ -221,6 +200,21 @@ gimp_navigation_preview_realize (GtkWidget *widget) GDK_LINE_SOLID, GDK_CAP_BUTT, GDK_JOIN_ROUND); } +static void +gimp_navigation_preview_unrealize (GtkWidget *widget) +{ + GimpNavigationPreview *nav_preview = GIMP_NAVIGATION_PREVIEW (widget); + + if (nav_preview->gc) + { + g_object_unref (nav_preview->gc); + nav_preview->gc = NULL; + } + + if (GTK_WIDGET_CLASS (parent_class)->unrealize) + GTK_WIDGET_CLASS (parent_class)->unrealize (widget); +} + static void gimp_navigation_preview_size_allocate (GtkWidget *widget, GtkAllocation *allocation)