[gtk+] expander: Flip the alignment of the vertical box



commit 2a665715b6189b51d001a948257f67d878014580
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Jan 18 00:19:31 2016 -0500

    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 files changed, 6 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtkexpander.c b/gtk/gtkexpander.c
index 4a07c77..cb8ea62 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);
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]