summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2016-01-18 00:03:39 -0500
committerMatthias Clasen <mclasen@redhat.com>2016-01-18 00:03:39 -0500
commit5265db5dd616f654d1c17b395f97818b2b531000 (patch)
tree0a1a21fa0bac024bf7827ee9c0c554b4b6762c76
parentf6757e0c0cb59ee4bb9f8ea0f022cc232e54bc74 (diff)
downloadgtk+-5265db5dd616f654d1c17b395f97818b2b531000.tar.gz
box gadget: Add a function to reverse children
This can be used to handle text direction changes.
-rw-r--r--gtk/gtkboxgadget.c20
-rw-r--r--gtk/gtkboxgadgetprivate.h1
2 files changed, 21 insertions, 0 deletions
diff --git a/gtk/gtkboxgadget.c b/gtk/gtkboxgadget.c
index f62b0d7897..82c8632e00 100644
--- a/gtk/gtkboxgadget.c
+++ b/gtk/gtkboxgadget.c
@@ -651,3 +651,23 @@ gtk_box_gadget_remove_gadget (GtkBoxGadget *gadget,
{
gtk_box_gadget_remove_object (gadget, G_OBJECT (cssgadget));
}
+
+void
+gtk_box_gadget_reverse_children (GtkBoxGadget *gadget)
+{
+ GtkBoxGadgetPrivate *priv = gtk_box_gadget_get_instance_private (GTK_BOX_GADGET (gadget));
+ int i, j;
+
+ gtk_css_node_reverse_children (gtk_css_gadget_get_node (GTK_CSS_GADGET (gadget)));
+
+ for (i = 0, j = priv->children->len - 1; i < j; i++, j--)
+ {
+ GtkBoxGadgetChild *child1 = &g_array_index (priv->children, GtkBoxGadgetChild, i);
+ GtkBoxGadgetChild *child2 = &g_array_index (priv->children, GtkBoxGadgetChild, j);
+ GtkBoxGadgetChild tmp;
+
+ tmp = *child1;
+ *child1 = *child2;
+ *child2 = tmp;
+ }
+}
diff --git a/gtk/gtkboxgadgetprivate.h b/gtk/gtkboxgadgetprivate.h
index 8063fccc61..3662124a85 100644
--- a/gtk/gtkboxgadgetprivate.h
+++ b/gtk/gtkboxgadgetprivate.h
@@ -70,6 +70,7 @@ void gtk_box_gadget_insert_gadget (GtkBoxGadget
GtkAlign align);
void gtk_box_gadget_remove_gadget (GtkBoxGadget *gadget,
GtkCssGadget *cssgadget);
+void gtk_box_gadget_reverse_children (GtkBoxGadget *gadget);
G_END_DECLS