summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtknotebook.c26
-rw-r--r--gtk/gtktext.c6
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);