summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Pablo Ugarte <jpu@src.gnome.org>2007-10-18 16:13:02 +0000
committerJuan Pablo Ugarte <jpu@src.gnome.org>2007-10-18 16:13:02 +0000
commitff938b0eb4552a127366188396a327727e88e254 (patch)
tree2ca5a64f551a89f805aa4a2c115a6e858acf38b3
parenta9ed5afbb29b1f68fd30f9f1a61ec69939b24fb1 (diff)
downloadglade-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--ChangeLog5
-rw-r--r--gladeui/glade-widget.c19
2 files changed, 14 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 40871f8a..d5dd7619 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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;
}