[glade] GladeGtkGrid: improve _add() method
- From: Juan Pablo Ugarte <jpu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glade] GladeGtkGrid: improve _add() method
- Date: Sat, 19 Sep 2020 00:38:34 +0000 (UTC)
commit f46fa6d9b36160a866cf19fbdbe95c806f944555
Author: Juan Pablo Ugarte <juanpablougarte gmail com>
Date: Fri Sep 18 21:37:08 2020 -0300
GladeGtkGrid: improve _add() method
Add child to the first placeholder
plugins/gtk+/glade-gtk-grid.c | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
---
diff --git a/plugins/gtk+/glade-gtk-grid.c b/plugins/gtk+/glade-gtk-grid.c
index 27f069d9..fc80d758 100644
--- a/plugins/gtk+/glade-gtk-grid.c
+++ b/plugins/gtk+/glade-gtk-grid.c
@@ -287,7 +287,31 @@ glade_gtk_grid_add_child (GladeWidgetAdaptor *adaptor,
g_return_if_fail (GTK_IS_GRID (object));
g_return_if_fail (GTK_IS_WIDGET (child));
- gtk_container_add (GTK_CONTAINER (object), GTK_WIDGET (child));
+ if (!glade_widget_superuser () && !GLADE_IS_PLACEHOLDER (child))
+ {
+ GladeWidget *widget = glade_widget_get_from_gobject (object);
+ GtkGrid *grid = GTK_GRID (object);
+ gint n_columns, n_rows;
+ gint x, y;
+
+ glade_widget_property_get (widget, "n-columns", &n_columns);
+ glade_widget_property_get (widget, "n-rows", &n_rows);
+
+ for (x = 0; x < n_columns; x++)
+ for (y = 0; y < n_rows; y++)
+ {
+ GtkWidget *child_widget = gtk_grid_get_child_at (grid, x, y);
+
+ if (GLADE_IS_PLACEHOLDER (child_widget))
+ {
+ gtk_container_remove (GTK_CONTAINER (grid), child_widget);
+ gtk_grid_attach (grid, GTK_WIDGET (child), x, y, 1, 1);
+ break;
+ }
+ }
+ }
+ else
+ gtk_container_add (GTK_CONTAINER (object), GTK_WIDGET (child));
glade_gtk_grid_refresh_placeholders (GTK_GRID (object), FALSE);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]