[glade3] * plugins/gtk+/glade-gtk.c: Fixed glade_gtk_frame_add_child() to remove any previous placeholder
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glade3] * plugins/gtk+/glade-gtk.c: Fixed glade_gtk_frame_add_child() to remove any previous placeholder
- Date: Thu, 26 Aug 2010 04:10:42 +0000 (UTC)
commit b1a1a26e703c0d5717343c34929fe53c324e441b
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date: Thu Aug 26 13:09:23 2010 +0900
* plugins/gtk+/glade-gtk.c: Fixed glade_gtk_frame_add_child() to remove any previous
placeholders.
ChangeLog | 5 +++++
plugins/gtk+/glade-gtk.c | 19 ++++++++++++++++++-
2 files changed, 23 insertions(+), 1 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 8bc72b9..4a7f19a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-08-26 Tristan Van Berkom <tvb gnome org>
+
+ * plugins/gtk+/glade-gtk.c: Fixed glade_gtk_frame_add_child() to remove any previous
+ placeholders.
+
2010-06-15 Tristan Van Berkom <tvb gnome org>
* configure.ac: Require GTK+ 3.0 and change package domain from glade3 -> glade
diff --git a/plugins/gtk+/glade-gtk.c b/plugins/gtk+/glade-gtk.c
index b4dcddb..9463cdf 100644
--- a/plugins/gtk+/glade-gtk.c
+++ b/plugins/gtk+/glade-gtk.c
@@ -1345,7 +1345,10 @@ glade_gtk_container_add_child (GladeWidgetAdaptor *adaptor,
GtkWidget *container,
GtkWidget *child)
{
- GtkWidget *container_child = gtk_bin_get_child (GTK_BIN (container));
+ GtkWidget *container_child = NULL;
+
+ if (GTK_IS_BIN (container))
+ container_child = gtk_bin_get_child (GTK_BIN (container));
/* Get a placeholder out of the way before adding the child if its a GtkBin
*/
@@ -3384,6 +3387,7 @@ glade_gtk_frame_add_child (GladeWidgetAdaptor *adaptor,
GObject *object,
GObject *child)
{
+ GtkWidget *bin_child;
gchar *special_child_type;
special_child_type = g_object_get_data (child, "special-child-type");
@@ -3404,6 +3408,19 @@ glade_gtk_frame_add_child (GladeWidgetAdaptor *adaptor,
}
else
{
+ /* Get a placeholder out of the way before adding the child
+ */
+ bin_child = gtk_bin_get_child (GTK_BIN (object));
+ if (bin_child)
+ {
+ if (GLADE_IS_PLACEHOLDER (bin_child))
+ gtk_container_remove (GTK_CONTAINER (object), bin_child);
+ else
+ {
+ g_critical ("Cant add more than one widget to a GtkFrame");
+ return;
+ }
+ }
gtk_container_add (GTK_CONTAINER (object),
GTK_WIDGET (child));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]