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

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