diff options
author | Juan Pablo Ugarte <jpu@src.gnome.org> | 2007-10-18 16:13:02 +0000 |
---|---|---|
committer | Juan Pablo Ugarte <jpu@src.gnome.org> | 2007-10-18 16:13:02 +0000 |
commit | ff938b0eb4552a127366188396a327727e88e254 (patch) | |
tree | 2ca5a64f551a89f805aa4a2c115a6e858acf38b3 | |
parent | a9ed5afbb29b1f68fd30f9f1a61ec69939b24fb1 (diff) | |
download | glade-ff938b0eb4552a127366188396a327727e88e254.tar.gz |
fixed bug #480495, if the widget is realized we just call
* gladeui/glade-widget.c: fixed bug #480495, if the widget is realized we just call
gtk_widget_unrealize()
svn path=/trunk/; revision=1631
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | gladeui/glade-widget.c | 19 |
2 files changed, 14 insertions, 10 deletions
@@ -1,3 +1,8 @@ +2007-10-18 Juan Pablo Ugarte <juanpablougarte@gmail.com> + + * gladeui/glade-widget.c: fixed bug #480495, if the widget is realized we just call + gtk_widget_unrealize() + 2007-10-15 Juan Pablo Ugarte <juanpablougarte@gmail.com> * plugins/gtk+/glade-gtk.c: disable GtkImage::stock when edit type is not in stock mode. diff --git a/gladeui/glade-widget.c b/gladeui/glade-widget.c index e041e233..53c36582 100644 --- a/gladeui/glade-widget.c +++ b/gladeui/glade-widget.c @@ -4232,6 +4232,7 @@ static gboolean glade_widget_embed (GladeWidget *widget) { GtkWindow *window; + GtkWidget *widget; g_return_val_if_fail (GLADE_IS_WIDGET (widget), FALSE); g_return_val_if_fail (GTK_IS_WINDOW (widget->object), FALSE); @@ -4240,23 +4241,21 @@ glade_widget_embed (GladeWidget *widget) if (glade_window_is_embedded (window)) return TRUE; - if (GTK_WIDGET_REALIZED (GTK_WIDGET (window))) - { - g_critical ("Cannot embed a window that is already realized"); - return FALSE; - } + widget = GTK_WIDGET (window); + + if (GTK_WIDGET_REALIZED (widget)) gtk_widget_unrealize (widget); - GTK_WIDGET_UNSET_FLAGS (GTK_WIDGET (window), GTK_TOPLEVEL); + GTK_WIDGET_UNSET_FLAGS (widget, GTK_TOPLEVEL); gtk_container_set_resize_mode (GTK_CONTAINER (window), GTK_RESIZE_PARENT); - g_signal_connect (G_OBJECT (window), "realize", + g_signal_connect (window, "realize", G_CALLBACK (embedded_window_realize_handler), NULL); - g_signal_connect (G_OBJECT (window), "size-allocate", + g_signal_connect (window, "size-allocate", G_CALLBACK (embedded_window_size_allocate_handler), NULL); /* mark window as embedded */ - g_object_set_qdata (G_OBJECT (window), - embedded_window_get_quark (), GINT_TO_POINTER (TRUE)); + g_object_set_qdata (window, embedded_window_get_quark (), + GINT_TO_POINTER (TRUE)); return TRUE; } |