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> 2003-11-10 Sven Neumann <sven@gimp.org>
* app/display/gimpcanvas.[ch] * 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_class_init (GimpHistogramViewClass *klass);
static void gimp_histogram_view_init (GimpHistogramView *view); 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, static void gimp_histogram_view_set_property (GObject *object,
guint property_id, guint property_id,
const GValue *value, const GValue *value,
@ -57,6 +56,7 @@ static void gimp_histogram_view_get_property (GObject *object,
guint property_id, guint property_id,
GValue *value, GValue *value,
GParamSpec *pspec); GParamSpec *pspec);
static void gimp_histogram_view_unrealize (GtkWidget *widget);
static void gimp_histogram_view_size_request (GtkWidget *widget, static void gimp_histogram_view_size_request (GtkWidget *widget,
GtkRequisition *requisition); GtkRequisition *requisition);
static gboolean gimp_histogram_view_expose (GtkWidget *widget, 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->get_property = gimp_histogram_view_get_property;
object_class->set_property = gimp_histogram_view_set_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->size_request = gimp_histogram_view_size_request;
widget_class->expose_event = gimp_histogram_view_expose; widget_class->expose_event = gimp_histogram_view_expose;
@ -150,18 +150,6 @@ gimp_histogram_view_init (GimpHistogramView *view)
view->end = 255; 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 static void
gimp_histogram_view_set_property (GObject *object, gimp_histogram_view_set_property (GObject *object,
guint property_id, 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 static void
gimp_histogram_view_size_request (GtkWidget *widget, gimp_histogram_view_size_request (GtkWidget *widget,
GtkRequisition *requisition) GtkRequisition *requisition)

View File

@ -53,8 +53,8 @@ enum
static void gimp_navigation_preview_class_init (GimpNavigationPreviewClass *klass); static void gimp_navigation_preview_class_init (GimpNavigationPreviewClass *klass);
static void gimp_navigation_preview_init (GimpNavigationPreview *preview); 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_realize (GtkWidget *widget);
static void gimp_navigation_preview_unrealize (GtkWidget *widget);
static void gimp_navigation_preview_size_allocate (GtkWidget *widget, static void gimp_navigation_preview_size_allocate (GtkWidget *widget,
GtkAllocation *allocation); GtkAllocation *allocation);
static gboolean gimp_navigation_preview_expose (GtkWidget *widget, static gboolean gimp_navigation_preview_expose (GtkWidget *widget,
@ -111,10 +111,8 @@ gimp_navigation_preview_get_type (void)
static void static void
gimp_navigation_preview_class_init (GimpNavigationPreviewClass *klass) gimp_navigation_preview_class_init (GimpNavigationPreviewClass *klass)
{ {
GtkObjectClass *object_class;
GtkWidgetClass *widget_class; GtkWidgetClass *widget_class;
object_class = GTK_OBJECT_CLASS (klass);
widget_class = GTK_WIDGET_CLASS (klass); widget_class = GTK_WIDGET_CLASS (klass);
parent_class = g_type_class_peek_parent (klass); parent_class = g_type_class_peek_parent (klass);
@ -150,9 +148,8 @@ gimp_navigation_preview_class_init (GimpNavigationPreviewClass *klass)
G_TYPE_NONE, 1, G_TYPE_NONE, 1,
GDK_TYPE_SCROLL_DIRECTION); GDK_TYPE_SCROLL_DIRECTION);
object_class->destroy = gimp_navigation_preview_destroy;
widget_class->realize = gimp_navigation_preview_realize; 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->size_allocate = gimp_navigation_preview_size_allocate;
widget_class->expose_event = gimp_navigation_preview_expose; widget_class->expose_event = gimp_navigation_preview_expose;
widget_class->button_press_event = gimp_navigation_preview_button_press; widget_class->button_press_event = gimp_navigation_preview_button_press;
@ -187,28 +184,10 @@ gimp_navigation_preview_init (GimpNavigationPreview *preview)
preview->gc = NULL; 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 static void
gimp_navigation_preview_realize (GtkWidget *widget) gimp_navigation_preview_realize (GtkWidget *widget)
{ {
GimpNavigationPreview *nav_preview; GimpNavigationPreview *nav_preview = GIMP_NAVIGATION_PREVIEW (widget);
nav_preview = GIMP_NAVIGATION_PREVIEW (widget);
if (GTK_WIDGET_CLASS (parent_class)->realize) if (GTK_WIDGET_CLASS (parent_class)->realize)
GTK_WIDGET_CLASS (parent_class)->realize (widget); 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); 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 static void
gimp_navigation_preview_size_allocate (GtkWidget *widget, gimp_navigation_preview_size_allocate (GtkWidget *widget,
GtkAllocation *allocation) GtkAllocation *allocation)

View File

@ -53,8 +53,8 @@ enum
static void gimp_navigation_preview_class_init (GimpNavigationPreviewClass *klass); static void gimp_navigation_preview_class_init (GimpNavigationPreviewClass *klass);
static void gimp_navigation_preview_init (GimpNavigationPreview *preview); 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_realize (GtkWidget *widget);
static void gimp_navigation_preview_unrealize (GtkWidget *widget);
static void gimp_navigation_preview_size_allocate (GtkWidget *widget, static void gimp_navigation_preview_size_allocate (GtkWidget *widget,
GtkAllocation *allocation); GtkAllocation *allocation);
static gboolean gimp_navigation_preview_expose (GtkWidget *widget, static gboolean gimp_navigation_preview_expose (GtkWidget *widget,
@ -111,10 +111,8 @@ gimp_navigation_preview_get_type (void)
static void static void
gimp_navigation_preview_class_init (GimpNavigationPreviewClass *klass) gimp_navigation_preview_class_init (GimpNavigationPreviewClass *klass)
{ {
GtkObjectClass *object_class;
GtkWidgetClass *widget_class; GtkWidgetClass *widget_class;
object_class = GTK_OBJECT_CLASS (klass);
widget_class = GTK_WIDGET_CLASS (klass); widget_class = GTK_WIDGET_CLASS (klass);
parent_class = g_type_class_peek_parent (klass); parent_class = g_type_class_peek_parent (klass);
@ -150,9 +148,8 @@ gimp_navigation_preview_class_init (GimpNavigationPreviewClass *klass)
G_TYPE_NONE, 1, G_TYPE_NONE, 1,
GDK_TYPE_SCROLL_DIRECTION); GDK_TYPE_SCROLL_DIRECTION);
object_class->destroy = gimp_navigation_preview_destroy;
widget_class->realize = gimp_navigation_preview_realize; 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->size_allocate = gimp_navigation_preview_size_allocate;
widget_class->expose_event = gimp_navigation_preview_expose; widget_class->expose_event = gimp_navigation_preview_expose;
widget_class->button_press_event = gimp_navigation_preview_button_press; widget_class->button_press_event = gimp_navigation_preview_button_press;
@ -187,28 +184,10 @@ gimp_navigation_preview_init (GimpNavigationPreview *preview)
preview->gc = NULL; 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 static void
gimp_navigation_preview_realize (GtkWidget *widget) gimp_navigation_preview_realize (GtkWidget *widget)
{ {
GimpNavigationPreview *nav_preview; GimpNavigationPreview *nav_preview = GIMP_NAVIGATION_PREVIEW (widget);
nav_preview = GIMP_NAVIGATION_PREVIEW (widget);
if (GTK_WIDGET_CLASS (parent_class)->realize) if (GTK_WIDGET_CLASS (parent_class)->realize)
GTK_WIDGET_CLASS (parent_class)->realize (widget); 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); 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 static void
gimp_navigation_preview_size_allocate (GtkWidget *widget, gimp_navigation_preview_size_allocate (GtkWidget *widget,
GtkAllocation *allocation) GtkAllocation *allocation)