Fixed unrealize handler to comply with the documentation (which mentions

2018-02-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtkclist.c:
	* gtk/gtkentry.c:
	* gtk/gtkfixed.c:
	* gtk/gtkhandlebox.c:
	* gtk/gtknotebook.c:
	* gtk/gtkpaned.c:
	* gtk/gtkpreview.c:
	* gtk/gtkrange.c:
	* gtk/gtkruler.c:
	* gtk/gtktext.c:
	* gtk/gtkviewport.c:
	Fixed unrealize handler to comply with the
	documentation (which mentions the right thing to do).
This commit is contained in:
Federico Mena Quintero 1998-02-12 03:02:14 +00:00 committed by Arturo Espinosa
parent 31a238b6b6
commit 9dee8ee4e4
18 changed files with 147 additions and 109 deletions

View File

@ -1,3 +1,19 @@
2018-02-11 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gtk/gtkclist.c:
* gtk/gtkentry.c:
* gtk/gtkfixed.c:
* gtk/gtkhandlebox.c:
* gtk/gtknotebook.c:
* gtk/gtkpaned.c:
* gtk/gtkpreview.c:
* gtk/gtkrange.c:
* gtk/gtkruler.c:
* gtk/gtktext.c:
* gtk/gtkviewport.c:
Fixed unrealize handler to comply with the
documentation (which mentions the right thing to do).
Wed Feb 11 00:18:31 1998 Tim Janik <timj@gimp.org> Wed Feb 11 00:18:31 1998 Tim Janik <timj@gimp.org>
* docs/refcounting.txt: backed out the section "Gnits to care about". * docs/refcounting.txt: backed out the section "Gnits to care about".

View File

@ -1,3 +1,19 @@
2018-02-11 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gtk/gtkclist.c:
* gtk/gtkentry.c:
* gtk/gtkfixed.c:
* gtk/gtkhandlebox.c:
* gtk/gtknotebook.c:
* gtk/gtkpaned.c:
* gtk/gtkpreview.c:
* gtk/gtkrange.c:
* gtk/gtkruler.c:
* gtk/gtktext.c:
* gtk/gtkviewport.c:
Fixed unrealize handler to comply with the
documentation (which mentions the right thing to do).
Wed Feb 11 00:18:31 1998 Tim Janik <timj@gimp.org> Wed Feb 11 00:18:31 1998 Tim Janik <timj@gimp.org>
* docs/refcounting.txt: backed out the section "Gnits to care about". * docs/refcounting.txt: backed out the section "Gnits to care about".

View File

@ -1,3 +1,19 @@
2018-02-11 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gtk/gtkclist.c:
* gtk/gtkentry.c:
* gtk/gtkfixed.c:
* gtk/gtkhandlebox.c:
* gtk/gtknotebook.c:
* gtk/gtkpaned.c:
* gtk/gtkpreview.c:
* gtk/gtkrange.c:
* gtk/gtkruler.c:
* gtk/gtktext.c:
* gtk/gtkviewport.c:
Fixed unrealize handler to comply with the
documentation (which mentions the right thing to do).
Wed Feb 11 00:18:31 1998 Tim Janik <timj@gimp.org> Wed Feb 11 00:18:31 1998 Tim Janik <timj@gimp.org>
* docs/refcounting.txt: backed out the section "Gnits to care about". * docs/refcounting.txt: backed out the section "Gnits to care about".

View File

@ -1,3 +1,19 @@
2018-02-11 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gtk/gtkclist.c:
* gtk/gtkentry.c:
* gtk/gtkfixed.c:
* gtk/gtkhandlebox.c:
* gtk/gtknotebook.c:
* gtk/gtkpaned.c:
* gtk/gtkpreview.c:
* gtk/gtkrange.c:
* gtk/gtkruler.c:
* gtk/gtktext.c:
* gtk/gtkviewport.c:
Fixed unrealize handler to comply with the
documentation (which mentions the right thing to do).
Wed Feb 11 00:18:31 1998 Tim Janik <timj@gimp.org> Wed Feb 11 00:18:31 1998 Tim Janik <timj@gimp.org>
* docs/refcounting.txt: backed out the section "Gnits to care about". * docs/refcounting.txt: backed out the section "Gnits to care about".

View File

@ -1,3 +1,19 @@
2018-02-11 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gtk/gtkclist.c:
* gtk/gtkentry.c:
* gtk/gtkfixed.c:
* gtk/gtkhandlebox.c:
* gtk/gtknotebook.c:
* gtk/gtkpaned.c:
* gtk/gtkpreview.c:
* gtk/gtkrange.c:
* gtk/gtkruler.c:
* gtk/gtktext.c:
* gtk/gtkviewport.c:
Fixed unrealize handler to comply with the
documentation (which mentions the right thing to do).
Wed Feb 11 00:18:31 1998 Tim Janik <timj@gimp.org> Wed Feb 11 00:18:31 1998 Tim Janik <timj@gimp.org>
* docs/refcounting.txt: backed out the section "Gnits to care about". * docs/refcounting.txt: backed out the section "Gnits to care about".

View File

@ -1,3 +1,19 @@
2018-02-11 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gtk/gtkclist.c:
* gtk/gtkentry.c:
* gtk/gtkfixed.c:
* gtk/gtkhandlebox.c:
* gtk/gtknotebook.c:
* gtk/gtkpaned.c:
* gtk/gtkpreview.c:
* gtk/gtkrange.c:
* gtk/gtkruler.c:
* gtk/gtktext.c:
* gtk/gtkviewport.c:
Fixed unrealize handler to comply with the
documentation (which mentions the right thing to do).
Wed Feb 11 00:18:31 1998 Tim Janik <timj@gimp.org> Wed Feb 11 00:18:31 1998 Tim Janik <timj@gimp.org>
* docs/refcounting.txt: backed out the section "Gnits to care about". * docs/refcounting.txt: backed out the section "Gnits to care about".

View File

@ -1,3 +1,19 @@
2018-02-11 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gtk/gtkclist.c:
* gtk/gtkentry.c:
* gtk/gtkfixed.c:
* gtk/gtkhandlebox.c:
* gtk/gtknotebook.c:
* gtk/gtkpaned.c:
* gtk/gtkpreview.c:
* gtk/gtkrange.c:
* gtk/gtkruler.c:
* gtk/gtktext.c:
* gtk/gtkviewport.c:
Fixed unrealize handler to comply with the
documentation (which mentions the right thing to do).
Wed Feb 11 00:18:31 1998 Tim Janik <timj@gimp.org> Wed Feb 11 00:18:31 1998 Tim Janik <timj@gimp.org>
* docs/refcounting.txt: backed out the section "Gnits to care about". * docs/refcounting.txt: backed out the section "Gnits to care about".

View File

@ -1700,7 +1700,7 @@ gtk_clist_unrealize (GtkWidget * widget)
g_return_if_fail (GTK_IS_CLIST (widget)); g_return_if_fail (GTK_IS_CLIST (widget));
clist = GTK_CLIST (widget); clist = GTK_CLIST (widget);
GTK_WIDGET_UNSET_FLAGS (widget, GTK_REALIZED | GTK_MAPPED);
GTK_CLIST_SET_FLAGS (clist, CLIST_FROZEN); GTK_CLIST_SET_FLAGS (clist, CLIST_FROZEN);
gdk_cursor_destroy (clist->cursor_drag); gdk_cursor_destroy (clist->cursor_drag);
@ -1708,8 +1708,6 @@ gtk_clist_unrealize (GtkWidget * widget)
gdk_gc_destroy (clist->fg_gc); gdk_gc_destroy (clist->fg_gc);
gdk_gc_destroy (clist->bg_gc); gdk_gc_destroy (clist->bg_gc);
gtk_style_detach (widget->style);
for (i = 0; i < clist->columns; i++) for (i = 0; i < clist->columns; i++)
if (clist->column[i].window) if (clist->column[i].window)
{ {
@ -1721,17 +1719,18 @@ gtk_clist_unrealize (GtkWidget * widget)
gdk_window_set_user_data (clist->clist_window, NULL); gdk_window_set_user_data (clist->clist_window, NULL);
gdk_window_destroy (clist->clist_window); gdk_window_destroy (clist->clist_window);
clist->clist_window = NULL; clist->clist_window = NULL;
gdk_window_set_user_data (clist->title_window, NULL); gdk_window_set_user_data (clist->title_window, NULL);
gdk_window_destroy (clist->title_window); gdk_window_destroy (clist->title_window);
clist->title_window = NULL; clist->title_window = NULL;
gdk_window_set_user_data (widget->window, NULL);
gdk_window_destroy (widget->window);
widget->window = NULL;
clist->cursor_drag = NULL; clist->cursor_drag = NULL;
clist->xor_gc = NULL; clist->xor_gc = NULL;
clist->fg_gc = NULL; clist->fg_gc = NULL;
clist->bg_gc = NULL; clist->bg_gc = NULL;
if (GTK_WIDGET_CLASS (parent_class)->unrealize)
(* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
} }
static void static void

View File

@ -681,11 +681,8 @@ gtk_entry_unrealize (GtkWidget *widget)
g_return_if_fail (widget != NULL); g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_ENTRY (widget)); g_return_if_fail (GTK_IS_ENTRY (widget));
GTK_WIDGET_UNSET_FLAGS (widget, GTK_REALIZED | GTK_MAPPED);
entry = GTK_ENTRY (widget); entry = GTK_ENTRY (widget);
gtk_style_detach (widget->style);
if (entry->text_area) if (entry->text_area)
{ {
gdk_window_set_user_data (entry->text_area, NULL); gdk_window_set_user_data (entry->text_area, NULL);
@ -694,12 +691,9 @@ gtk_entry_unrealize (GtkWidget *widget)
gdk_cursor_destroy (entry->cursor); gdk_cursor_destroy (entry->cursor);
entry->cursor = NULL; entry->cursor = NULL;
} }
if (widget->window)
{ if (GTK_WIDGET_CLASS (parent_class)->unrealize)
gdk_window_set_user_data (widget->window, NULL); (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
gdk_window_destroy (widget->window);
widget->window = NULL;
}
} }
static void static void

View File

@ -23,7 +23,6 @@ static void gtk_fixed_init (GtkFixed *fixed);
static void gtk_fixed_map (GtkWidget *widget); static void gtk_fixed_map (GtkWidget *widget);
static void gtk_fixed_unmap (GtkWidget *widget); static void gtk_fixed_unmap (GtkWidget *widget);
static void gtk_fixed_realize (GtkWidget *widget); static void gtk_fixed_realize (GtkWidget *widget);
static void gtk_fixed_unrealize (GtkWidget *widget);
static void gtk_fixed_size_request (GtkWidget *widget, static void gtk_fixed_size_request (GtkWidget *widget,
GtkRequisition *requisition); GtkRequisition *requisition);
static void gtk_fixed_size_allocate (GtkWidget *widget, static void gtk_fixed_size_allocate (GtkWidget *widget,
@ -86,7 +85,6 @@ gtk_fixed_class_init (GtkFixedClass *class)
widget_class->map = gtk_fixed_map; widget_class->map = gtk_fixed_map;
widget_class->unmap = gtk_fixed_unmap; widget_class->unmap = gtk_fixed_unmap;
widget_class->realize = gtk_fixed_realize; widget_class->realize = gtk_fixed_realize;
widget_class->unrealize = gtk_fixed_unrealize;
widget_class->size_request = gtk_fixed_size_request; widget_class->size_request = gtk_fixed_size_request;
widget_class->size_allocate = gtk_fixed_size_allocate; widget_class->size_allocate = gtk_fixed_size_allocate;
widget_class->draw = gtk_fixed_draw; widget_class->draw = gtk_fixed_draw;
@ -246,20 +244,6 @@ gtk_fixed_realize (GtkWidget *widget)
gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL); gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL);
} }
static void
gtk_fixed_unrealize (GtkWidget *widget)
{
g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_FIXED (widget));
GTK_WIDGET_UNSET_FLAGS (widget, GTK_REALIZED | GTK_MAPPED);
gtk_style_detach (widget->style);
gdk_window_set_user_data (widget->window, NULL);
gdk_window_destroy (widget->window);
widget->window = NULL;
}
static void static void
gtk_fixed_size_request (GtkWidget *widget, gtk_fixed_size_request (GtkWidget *widget,
GtkRequisition *requisition) GtkRequisition *requisition)

View File

@ -258,19 +258,8 @@ gtk_handle_box_unrealize (GtkWidget *widget)
g_return_if_fail (widget != NULL); g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_HANDLE_BOX (widget)); g_return_if_fail (GTK_IS_HANDLE_BOX (widget));
GTK_WIDGET_UNSET_FLAGS (widget, GTK_REALIZED | GTK_MAPPED);
gtk_style_detach (widget->style);
hb = GTK_HANDLE_BOX (widget); hb = GTK_HANDLE_BOX (widget);
if (widget->window)
{
gdk_window_set_user_data (widget->window, NULL);
gdk_window_destroy (widget->window);
widget->window = NULL;
}
if (hb->steady_window) if (hb->steady_window)
{ {
gdk_window_set_user_data (hb->steady_window, NULL); gdk_window_set_user_data (hb->steady_window, NULL);
@ -280,6 +269,9 @@ gtk_handle_box_unrealize (GtkWidget *widget)
gtk_widget_destroy (hb->float_window); gtk_widget_destroy (hb->float_window);
hb->float_window = NULL; hb->float_window = NULL;
if (GTK_WIDGET_CLASS (parent_class)->unrealize)
(* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
} }
static void static void

View File

@ -38,7 +38,6 @@ static void gtk_notebook_init (GtkNotebook *notebook);
static void gtk_notebook_map (GtkWidget *widget); static void gtk_notebook_map (GtkWidget *widget);
static void gtk_notebook_unmap (GtkWidget *widget); static void gtk_notebook_unmap (GtkWidget *widget);
static void gtk_notebook_realize (GtkWidget *widget); static void gtk_notebook_realize (GtkWidget *widget);
static void gtk_notebook_unrealize (GtkWidget *widget);
static void gtk_notebook_size_request (GtkWidget *widget, static void gtk_notebook_size_request (GtkWidget *widget,
GtkRequisition *requisition); GtkRequisition *requisition);
static void gtk_notebook_size_allocate (GtkWidget *widget, static void gtk_notebook_size_allocate (GtkWidget *widget,
@ -131,7 +130,6 @@ gtk_notebook_class_init (GtkNotebookClass *class)
widget_class->map = gtk_notebook_map; widget_class->map = gtk_notebook_map;
widget_class->unmap = gtk_notebook_unmap; widget_class->unmap = gtk_notebook_unmap;
widget_class->realize = gtk_notebook_realize; widget_class->realize = gtk_notebook_realize;
widget_class->unrealize = gtk_notebook_unrealize;
widget_class->size_request = gtk_notebook_size_request; widget_class->size_request = gtk_notebook_size_request;
widget_class->size_allocate = gtk_notebook_size_allocate; widget_class->size_allocate = gtk_notebook_size_allocate;
widget_class->draw = gtk_notebook_draw; widget_class->draw = gtk_notebook_draw;
@ -507,20 +505,6 @@ gtk_notebook_realize (GtkWidget *widget)
gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL); gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL);
} }
static void
gtk_notebook_unrealize (GtkWidget *widget)
{
g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_NOTEBOOK (widget));
GTK_WIDGET_UNSET_FLAGS (widget, GTK_REALIZED | GTK_MAPPED);
gtk_style_detach (widget->style);
gdk_window_set_user_data (widget->window, NULL);
gdk_window_destroy (widget->window);
widget->window = NULL;
}
static void static void
gtk_notebook_size_request (GtkWidget *widget, gtk_notebook_size_request (GtkWidget *widget,
GtkRequisition *requisition) GtkRequisition *requisition)

View File

@ -210,13 +210,13 @@ gtk_paned_unrealize (GtkWidget *widget)
g_return_if_fail (widget != NULL); g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_PANED (widget)); g_return_if_fail (GTK_IS_PANED (widget));
GTK_WIDGET_UNSET_FLAGS (widget, GTK_REALIZED);
paned = GTK_PANED (widget); paned = GTK_PANED (widget);
gtk_style_detach (widget->style);
if (paned->xor_gc) if (paned->xor_gc)
{
gdk_gc_destroy (paned->xor_gc); gdk_gc_destroy (paned->xor_gc);
paned->xor_gc = NULL;
}
if (paned->handle) if (paned->handle)
{ {
@ -227,11 +227,8 @@ gtk_paned_unrealize (GtkWidget *widget)
paned->cursor = NULL; paned->cursor = NULL;
} }
if (widget->window) if (GTK_WIDGET_CLASS (parent_class)->unrealize)
{ (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
gdk_window_unref (widget->window);
widget->window = NULL;
}
} }
static gint static gint

View File

@ -48,7 +48,6 @@ static void gtk_preview_class_init (GtkPreviewClass *klass);
static void gtk_preview_init (GtkPreview *preview); static void gtk_preview_init (GtkPreview *preview);
static void gtk_preview_finalize (GtkObject *object); static void gtk_preview_finalize (GtkObject *object);
static void gtk_preview_realize (GtkWidget *widget); static void gtk_preview_realize (GtkWidget *widget);
static void gtk_preview_unrealize (GtkWidget *widget);
static gint gtk_preview_expose (GtkWidget *widget, static gint gtk_preview_expose (GtkWidget *widget,
GdkEventExpose *event); GdkEventExpose *event);
static void gtk_preview_make_buffer (GtkPreview *preview); static void gtk_preview_make_buffer (GtkPreview *preview);
@ -165,7 +164,6 @@ gtk_preview_class_init (GtkPreviewClass *klass)
object_class->finalize = gtk_preview_finalize; object_class->finalize = gtk_preview_finalize;
widget_class->realize = gtk_preview_realize; widget_class->realize = gtk_preview_realize;
widget_class->unrealize = gtk_preview_unrealize;
widget_class->expose_event = gtk_preview_expose; widget_class->expose_event = gtk_preview_expose;
if (preview_info) if (preview_info)
@ -682,20 +680,6 @@ gtk_preview_realize (GtkWidget *widget)
gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL); gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL);
} }
static void
gtk_preview_unrealize (GtkWidget *widget)
{
GtkPreview *preview;
g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_PREVIEW (widget));
preview = GTK_PREVIEW (widget);
if (GTK_WIDGET_CLASS (parent_class)->unrealize)
(* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
}
static gint static gint
gtk_preview_expose (GtkWidget *widget, gtk_preview_expose (GtkWidget *widget,
GdkEventExpose *event) GdkEventExpose *event)

View File

@ -643,11 +643,8 @@ gtk_range_unrealize (GtkWidget *widget)
g_return_if_fail (widget != NULL); g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_RANGE (widget)); g_return_if_fail (GTK_IS_RANGE (widget));
GTK_WIDGET_UNSET_FLAGS (widget, GTK_REALIZED);
range = GTK_RANGE (widget); range = GTK_RANGE (widget);
gtk_style_detach (widget->style);
if (range->slider) if (range->slider)
{ {
gdk_window_set_user_data (range->slider, NULL); gdk_window_set_user_data (range->slider, NULL);
@ -672,12 +669,9 @@ gtk_range_unrealize (GtkWidget *widget)
gdk_window_destroy (range->step_back); gdk_window_destroy (range->step_back);
range->step_back = NULL; range->step_back = NULL;
} }
if (widget->window)
{ if (GTK_WIDGET_CLASS (parent_class)->unrealize)
gdk_window_set_user_data (widget->window, NULL); (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
gdk_window_destroy (widget->window);
widget->window = NULL;
}
} }
static gint static gint

View File

@ -29,6 +29,8 @@ static gint gtk_ruler_expose (GtkWidget *widget,
static void gtk_ruler_make_pixmap (GtkRuler *ruler); static void gtk_ruler_make_pixmap (GtkRuler *ruler);
static GtkWidgetClass *parent_class;
static GtkRulerMetric ruler_metrics[] = static GtkRulerMetric ruler_metrics[] =
{ {
{"Pixels", "Pi", 1.0, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }}, {"Pixels", "Pi", 1.0, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }},
@ -70,6 +72,8 @@ gtk_ruler_class_init (GtkRulerClass *class)
object_class = (GtkObjectClass*) class; object_class = (GtkObjectClass*) class;
widget_class = (GtkWidgetClass*) class; widget_class = (GtkWidgetClass*) class;
parent_class = gtk_type_class (gtk_widget_get_type ());
widget_class->realize = gtk_ruler_realize; widget_class->realize = gtk_ruler_realize;
widget_class->unrealize = gtk_ruler_unrealize; widget_class->unrealize = gtk_ruler_unrealize;
widget_class->size_allocate = gtk_ruler_size_allocate; widget_class->size_allocate = gtk_ruler_size_allocate;
@ -194,12 +198,6 @@ gtk_ruler_unrealize (GtkWidget *widget)
g_return_if_fail (GTK_IS_RULER (widget)); g_return_if_fail (GTK_IS_RULER (widget));
ruler = GTK_RULER (widget); ruler = GTK_RULER (widget);
GTK_WIDGET_UNSET_FLAGS (widget, GTK_REALIZED | GTK_MAPPED);
gtk_style_detach (widget->style);
gdk_window_set_user_data (widget->window, NULL);
gdk_window_destroy (widget->window);
widget->window = NULL;
if (ruler->backing_store) if (ruler->backing_store)
gdk_pixmap_unref (ruler->backing_store); gdk_pixmap_unref (ruler->backing_store);
@ -208,6 +206,9 @@ gtk_ruler_unrealize (GtkWidget *widget)
ruler->backing_store = NULL; ruler->backing_store = NULL;
ruler->non_gr_exp_gc = NULL; ruler->non_gr_exp_gc = NULL;
if (GTK_WIDGET_CLASS (parent_class)->unrealize)
(* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
} }
static void static void

View File

@ -701,17 +701,16 @@ gtk_text_unrealize (GtkWidget *widget)
g_return_if_fail (GTK_IS_TEXT (widget)); g_return_if_fail (GTK_IS_TEXT (widget));
text = GTK_TEXT (widget); text = GTK_TEXT (widget);
GTK_WIDGET_UNSET_FLAGS (widget, GTK_REALIZED | GTK_MAPPED);
gtk_style_detach (widget->style);
gdk_window_set_user_data (widget->window, NULL);
gdk_window_destroy (widget->window);
widget->window = NULL;
gdk_window_set_user_data (text->text_area, NULL); gdk_window_set_user_data (text->text_area, NULL);
gdk_window_destroy (text->text_area); gdk_window_destroy (text->text_area);
text->text_area = NULL; text->text_area = NULL;
gdk_gc_destroy (text->gc); gdk_gc_destroy (text->gc);
text->gc = NULL; text->gc = NULL;
if (GTK_WIDGET_CLASS (parent_class)->unrealize)
(* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
} }
static void static void

View File

@ -345,19 +345,17 @@ gtk_viewport_unrealize (GtkWidget *widget)
g_return_if_fail (GTK_IS_VIEWPORT (widget)); g_return_if_fail (GTK_IS_VIEWPORT (widget));
viewport = GTK_VIEWPORT (widget); viewport = GTK_VIEWPORT (widget);
GTK_WIDGET_UNSET_FLAGS (widget, GTK_REALIZED | GTK_MAPPED);
gtk_style_detach (widget->style);
gdk_window_set_user_data (widget->window, NULL);
gdk_window_destroy (widget->window);
widget->window = NULL;
gdk_window_set_user_data (viewport->view_window, NULL); gdk_window_set_user_data (viewport->view_window, NULL);
gdk_window_destroy (viewport->view_window); gdk_window_destroy (viewport->view_window);
viewport->view_window = NULL; viewport->view_window = NULL;
gdk_window_set_user_data (viewport->bin_window, NULL); gdk_window_set_user_data (viewport->bin_window, NULL);
gdk_window_destroy (viewport->bin_window); gdk_window_destroy (viewport->bin_window);
viewport->bin_window = NULL; viewport->bin_window = NULL;
if (GTK_WIDGET_CLASS (parent_class)->unrealize)
(* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
} }
static void static void