summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Pablo Ugarte <juanpablougarte@gmail.com>2018-05-12 10:00:18 -0300
committerJuan Pablo Ugarte <juanpablougarte@gmail.com>2018-05-12 10:05:18 -0300
commit2d676673e46559c55681b68ee7848149dda0a780 (patch)
tree8fa432e7f840b96c015f70a2ac99a60762496b38
parent21b435fce5d9465943db8562b37568048ad0e308 (diff)
downloadglade-2d676673e46559c55681b68ee7848149dda0a780.tar.gz
GladeCommand: ignore special child types placeholders in add command.
GladeGtkWindow: mark titlebar placeholder as special child type. Fix bug "Glade deletes all widgets when adding a Scrolled Window parent, but doesn't show it." https://gitlab.gnome.org/GNOME/glade/issues/196
-rw-r--r--gladeui/glade-command.c5
-rw-r--r--plugins/gtk+/glade-gtk-window.c1
2 files changed, 4 insertions, 2 deletions
diff --git a/gladeui/glade-command.c b/gladeui/glade-command.c
index 25fc663d..78bd9385 100644
--- a/gladeui/glade-command.c
+++ b/gladeui/glade-command.c
@@ -1281,8 +1281,9 @@ glade_command_add (GList *widgets,
{
child = l->data;
- /* Find a placeholder for this child */
- if (GLADE_IS_PLACEHOLDER (child) &&
+ /* Find a placeholder for this child, ignore special child types */
+ if (GLADE_IS_PLACEHOLDER (child) &&
+ g_object_get_data (G_OBJECT (child), "special-child-type") == NULL &&
g_list_find (placeholders, child) == NULL)
{
placeholders = g_list_append (placeholders, child);
diff --git a/plugins/gtk+/glade-gtk-window.c b/plugins/gtk+/glade-gtk-window.c
index ceb8440b..c8837c97 100644
--- a/plugins/gtk+/glade-gtk-window.c
+++ b/plugins/gtk+/glade-gtk-window.c
@@ -55,6 +55,7 @@ glade_gtk_window_ensure_titlebar_placeholder (GObject *window)
return;
placeholder = glade_placeholder_new ();
+ g_object_set_data (G_OBJECT (placeholder), "special-child-type", "titlebar");
gtk_window_set_titlebar (GTK_WINDOW (window), placeholder);
gtk_widget_hide (placeholder);