diff options
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtknotebook.c | 26 | ||||
-rw-r--r-- | gtk/gtktext.c | 6 |
2 files changed, 29 insertions, 3 deletions
diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c index b8ef75433..9c25f3bfd 100644 --- a/gtk/gtknotebook.c +++ b/gtk/gtknotebook.c @@ -94,6 +94,7 @@ static void gtk_notebook_get_arg (GtkObject *object, static void gtk_notebook_map (GtkWidget *widget); static void gtk_notebook_unmap (GtkWidget *widget); static void gtk_notebook_realize (GtkWidget *widget); +static void gtk_notebook_unrealize (GtkWidget *widget); static void gtk_notebook_size_request (GtkWidget *widget, GtkRequisition *requisition); static void gtk_notebook_size_allocate (GtkWidget *widget, @@ -284,6 +285,7 @@ gtk_notebook_class_init (GtkNotebookClass *class) widget_class->map = gtk_notebook_map; widget_class->unmap = gtk_notebook_unmap; widget_class->realize = gtk_notebook_realize; + widget_class->unrealize = gtk_notebook_unrealize; widget_class->size_request = gtk_notebook_size_request; widget_class->size_allocate = gtk_notebook_size_allocate; widget_class->draw = gtk_notebook_draw; @@ -565,6 +567,29 @@ gtk_notebook_realize (GtkWidget *widget) } static void +gtk_notebook_unrealize (GtkWidget *widget) +{ + GtkNotebook *notebook; + GdkWindowAttr attributes; + gint attributes_mask; + + g_return_if_fail (widget != NULL); + g_return_if_fail (GTK_IS_NOTEBOOK (widget)); + + notebook = GTK_NOTEBOOK (widget); + + if (notebook->panel) + { + gdk_window_set_user_data (notebook->panel, NULL); + gdk_window_destroy (notebook->panel); + notebook->panel = NULL; + } + + if (GTK_WIDGET_CLASS (parent_class)->unrealize) + (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget); +} + +static void gtk_notebook_size_request (GtkWidget *widget, GtkRequisition *requisition) { @@ -3969,6 +3994,7 @@ gtk_notebook_set_scrollable (GtkNotebook *notebook, } else if (notebook->panel) { + gdk_window_set_user_data (notebook->panel, NULL); gdk_window_destroy (notebook->panel); notebook->panel = NULL; } diff --git a/gtk/gtktext.c b/gtk/gtktext.c index 7d8daf230..2a716f5ea 100644 --- a/gtk/gtktext.c +++ b/gtk/gtktext.c @@ -4827,15 +4827,15 @@ expand_scratch_buffer (GtkText* text, guint len) if (text->use_wchar) { - if (text->scratch_buffer.wc) + if (!text->scratch_buffer.wc) text->scratch_buffer.wc = g_new (GdkWChar, i); else text->scratch_buffer.wc = g_realloc (text->scratch_buffer.wc, - i*sizeof (GdkWChar)); + i * sizeof (GdkWChar)); } else { - if (text->scratch_buffer.ch) + if (!text->scratch_buffer.ch) text->scratch_buffer.ch = g_new (guchar, i); else text->scratch_buffer.ch = g_realloc (text->scratch_buffer.ch, i); |