summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Janik <timj@gtk.org>2000-02-08 09:03:51 +0000
committerTim Janik <timj@src.gnome.org>2000-02-08 09:03:51 +0000
commitc39a5a1c6f599f177dc366f454d05a410591b378 (patch)
treefcd28c288cbd0ae258ab385eb2957ab68c23dd30
parent319b25908b38c875a7a4797b16aa9a20c7662bff (diff)
downloadgdk-pixbuf-c39a5a1c6f599f177dc366f454d05a410591b378.tar.gz
guard widget access with ref/unref around signal emission.
Tue Feb 8 09:38:29 2000 Tim Janik <timj@gtk.org> * gtk/gtkwidget.c: (gtk_widget_unrealize): guard widget access with ref/unref around signal emission. (gtk_widget_hide): same here, but also check its destroyed state before queueing a resize.
-rw-r--r--ChangeLog8
-rw-r--r--ChangeLog.pre-2-08
-rw-r--r--ChangeLog.pre-2-108
-rw-r--r--ChangeLog.pre-2-28
-rw-r--r--ChangeLog.pre-2-48
-rw-r--r--ChangeLog.pre-2-68
-rw-r--r--ChangeLog.pre-2-88
-rw-r--r--gtk/gtkwidget.c6
8 files changed, 61 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 6f4a6df93..f1dd2b282 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Tue Feb 8 09:38:29 2000 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.c:
+ (gtk_widget_unrealize): guard widget access with ref/unref
+ around signal emission.
+ (gtk_widget_hide): same here, but also check its destroyed
+ state before queueing a resize.
+
Tue Feb 8 03:05:55 2000 Tim Janik <timj@gtk.org>
* gtk/gtkstyle.c (gtk_style_new): use gtk_default_prelight_bg instead
diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0
index 6f4a6df93..f1dd2b282 100644
--- a/ChangeLog.pre-2-0
+++ b/ChangeLog.pre-2-0
@@ -1,3 +1,11 @@
+Tue Feb 8 09:38:29 2000 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.c:
+ (gtk_widget_unrealize): guard widget access with ref/unref
+ around signal emission.
+ (gtk_widget_hide): same here, but also check its destroyed
+ state before queueing a resize.
+
Tue Feb 8 03:05:55 2000 Tim Janik <timj@gtk.org>
* gtk/gtkstyle.c (gtk_style_new): use gtk_default_prelight_bg instead
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
index 6f4a6df93..f1dd2b282 100644
--- a/ChangeLog.pre-2-10
+++ b/ChangeLog.pre-2-10
@@ -1,3 +1,11 @@
+Tue Feb 8 09:38:29 2000 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.c:
+ (gtk_widget_unrealize): guard widget access with ref/unref
+ around signal emission.
+ (gtk_widget_hide): same here, but also check its destroyed
+ state before queueing a resize.
+
Tue Feb 8 03:05:55 2000 Tim Janik <timj@gtk.org>
* gtk/gtkstyle.c (gtk_style_new): use gtk_default_prelight_bg instead
diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2
index 6f4a6df93..f1dd2b282 100644
--- a/ChangeLog.pre-2-2
+++ b/ChangeLog.pre-2-2
@@ -1,3 +1,11 @@
+Tue Feb 8 09:38:29 2000 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.c:
+ (gtk_widget_unrealize): guard widget access with ref/unref
+ around signal emission.
+ (gtk_widget_hide): same here, but also check its destroyed
+ state before queueing a resize.
+
Tue Feb 8 03:05:55 2000 Tim Janik <timj@gtk.org>
* gtk/gtkstyle.c (gtk_style_new): use gtk_default_prelight_bg instead
diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4
index 6f4a6df93..f1dd2b282 100644
--- a/ChangeLog.pre-2-4
+++ b/ChangeLog.pre-2-4
@@ -1,3 +1,11 @@
+Tue Feb 8 09:38:29 2000 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.c:
+ (gtk_widget_unrealize): guard widget access with ref/unref
+ around signal emission.
+ (gtk_widget_hide): same here, but also check its destroyed
+ state before queueing a resize.
+
Tue Feb 8 03:05:55 2000 Tim Janik <timj@gtk.org>
* gtk/gtkstyle.c (gtk_style_new): use gtk_default_prelight_bg instead
diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6
index 6f4a6df93..f1dd2b282 100644
--- a/ChangeLog.pre-2-6
+++ b/ChangeLog.pre-2-6
@@ -1,3 +1,11 @@
+Tue Feb 8 09:38:29 2000 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.c:
+ (gtk_widget_unrealize): guard widget access with ref/unref
+ around signal emission.
+ (gtk_widget_hide): same here, but also check its destroyed
+ state before queueing a resize.
+
Tue Feb 8 03:05:55 2000 Tim Janik <timj@gtk.org>
* gtk/gtkstyle.c (gtk_style_new): use gtk_default_prelight_bg instead
diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8
index 6f4a6df93..f1dd2b282 100644
--- a/ChangeLog.pre-2-8
+++ b/ChangeLog.pre-2-8
@@ -1,3 +1,11 @@
+Tue Feb 8 09:38:29 2000 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.c:
+ (gtk_widget_unrealize): guard widget access with ref/unref
+ around signal emission.
+ (gtk_widget_hide): same here, but also check its destroyed
+ state before queueing a resize.
+
Tue Feb 8 03:05:55 2000 Tim Janik <timj@gtk.org>
* gtk/gtkstyle.c (gtk_style_new): use gtk_default_prelight_bg instead
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 4049826f5..6407ab504 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -1509,9 +1509,11 @@ gtk_widget_hide (GtkWidget *widget)
if (GTK_WIDGET_VISIBLE (widget))
{
+ gtk_widget_ref (widget);
gtk_signal_emit (GTK_OBJECT (widget), widget_signals[HIDE]);
- if (!GTK_WIDGET_TOPLEVEL (widget))
+ if (!GTK_WIDGET_TOPLEVEL (widget) && !GTK_OBJECT_DESTROYED (widget))
gtk_widget_queue_resize (widget);
+ gtk_widget_unref (widget);
}
}
@@ -1694,8 +1696,10 @@ gtk_widget_unrealize (GtkWidget *widget)
if (GTK_WIDGET_REALIZED (widget))
{
+ gtk_widget_ref (widget);
gtk_signal_emit (GTK_OBJECT (widget), widget_signals[UNREALIZE]);
GTK_WIDGET_UNSET_FLAGS (widget, GTK_REALIZED | GTK_MAPPED);
+ gtk_widget_unref (widget);
}
}