From 2a665715b6189b51d001a948257f67d878014580 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 18 Jan 2016 00:19:31 -0500 Subject: [PATCH] expander: Flip the alignment of the vertical box To ensure that the title moves to the other side as expected in RTL, use GTK_ALIGN_START/END instead of GTK_ALIGN_FILL when packing the title gadget into the vertical box, and flip the alignment when the text direction changes. --- gtk/gtkexpander.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gtk/gtkexpander.c b/gtk/gtkexpander.c index 4a07c77b0b..cb8ea62e82 100644 --- a/gtk/gtkexpander.c +++ b/gtk/gtkexpander.c @@ -450,7 +450,7 @@ gtk_expander_init (GtkExpander *expander) priv->gadget, NULL); gtk_box_gadget_set_orientation (GTK_BOX_GADGET (priv->title_gadget), GTK_ORIENTATION_HORIZONTAL); - gtk_box_gadget_insert_gadget (GTK_BOX_GADGET (priv->gadget), -1, priv->title_gadget, FALSE, FALSE, GTK_ALIGN_FILL); + gtk_box_gadget_insert_gadget (GTK_BOX_GADGET (priv->gadget), -1, priv->title_gadget, FALSE, FALSE, GTK_ALIGN_START); priv->arrow_gadget = gtk_builtin_icon_new ("arrow", GTK_WIDGET (expander), @@ -778,9 +778,14 @@ gtk_expander_direction_changed (GtkWidget *widget, GtkTextDirection previous_direction) { GtkExpanderPrivate *priv = GTK_EXPANDER (widget)->priv; + GtkAlign align; gtk_box_gadget_reverse_children (GTK_BOX_GADGET (priv->title_gadget)); + align = gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL ? GTK_ALIGN_END : GTK_ALIGN_START; + gtk_box_gadget_remove_gadget (GTK_BOX_GADGET (priv->gadget), priv->title_gadget); + gtk_box_gadget_insert_gadget (GTK_BOX_GADGET (priv->gadget), 0, priv->title_gadget, FALSE, FALSE, align); + GTK_WIDGET_CLASS (gtk_expander_parent_class)->direction_changed (widget, previous_direction); }