app/widgets/gimphistogramview.c destroy GdkGCs in GtkWidget::unrealize().

2003-11-10  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimphistogramview.c
	* app/widgets/gimpnavigationpreview.c: destroy GdkGCs in
	GtkWidget::unrealize().
This commit is contained in:
Michael Natterer 2003-11-10 02:00:19 +00:00 committed by Michael Natterer
parent cf842d8761
commit d213ff4ee2
4 changed files with 59 additions and 62 deletions

View File

@ -1,3 +1,9 @@
2003-11-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimphistogramview.c
* app/widgets/gimpnavigationpreview.c: destroy GdkGCs in
GtkWidget::unrealize().
2003-11-10 Sven Neumann <sven@gimp.org>
* app/display/gimpcanvas.[ch]

View File

@ -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)

View File

@ -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)

View File

@ -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)