mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-10 19:00:08 +00:00
box: Don't reorder children based on text direction
Make :first-child always be the first child, i.e. the leftest one in LTR and the rightest one in RTL.
This commit is contained in:
parent
da27627696
commit
01d4538223
22
gtk/gtkbox.c
22
gtk/gtkbox.c
@ -68,10 +68,6 @@
|
||||
* # CSS nodes
|
||||
*
|
||||
* GtkBox uses a single CSS node with name box.
|
||||
*
|
||||
* In horizontal orientation, the nodes of the children are always arranged
|
||||
* from left to right. So :first-child will always select the leftmost child,
|
||||
* regardless of text direction.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
@ -145,9 +141,6 @@ static void gtk_box_size_allocate (GtkWidget *widget,
|
||||
const GtkAllocation *allocation,
|
||||
int baseline);
|
||||
|
||||
static void gtk_box_direction_changed (GtkWidget *widget,
|
||||
GtkTextDirection previous_direction);
|
||||
|
||||
static void gtk_box_set_property (GObject *object,
|
||||
guint prop_id,
|
||||
const GValue *value,
|
||||
@ -201,7 +194,6 @@ gtk_box_class_init (GtkBoxClass *class)
|
||||
|
||||
widget_class->size_allocate = gtk_box_size_allocate;
|
||||
widget_class->measure = gtk_box_measure;
|
||||
widget_class->direction_changed = gtk_box_direction_changed;
|
||||
|
||||
container_class->add = gtk_box_add;
|
||||
container_class->remove = gtk_box_remove;
|
||||
@ -852,9 +844,6 @@ gtk_box_update_child_css_position (GtkBox *box,
|
||||
}
|
||||
|
||||
reverse = child_info->pack == GTK_PACK_END;
|
||||
if (priv->orientation == GTK_ORIENTATION_HORIZONTAL &&
|
||||
_gtk_widget_get_direction (GTK_WIDGET (box)) == GTK_TEXT_DIR_RTL)
|
||||
reverse = !reverse;
|
||||
|
||||
if (reverse)
|
||||
gtk_css_node_insert_before (gtk_widget_get_css_node (GTK_WIDGET (box)),
|
||||
@ -866,17 +855,6 @@ gtk_box_update_child_css_position (GtkBox *box,
|
||||
prev ? gtk_widget_get_css_node (prev->widget) : NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_box_direction_changed (GtkWidget *widget,
|
||||
GtkTextDirection previous_direction)
|
||||
{
|
||||
GtkBox *box = GTK_BOX (widget);
|
||||
GtkBoxPrivate *priv = gtk_box_get_instance_private (box);
|
||||
|
||||
if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
|
||||
gtk_css_node_reverse_children (gtk_widget_get_css_node (widget));
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_box_pack (GtkBox *box,
|
||||
GtkWidget *child,
|
||||
|
@ -1,5 +1,5 @@
|
||||
[window.background:dir(rtl)]
|
||||
decoration:dir(rtl)
|
||||
box.horizontal:dir(rtl)
|
||||
label#end:dir(rtl)
|
||||
label#start:dir(rtl)
|
||||
label#end:dir(rtl)
|
||||
|
@ -1,6 +1,6 @@
|
||||
[window.background:dir(rtl)]
|
||||
decoration:dir(rtl)
|
||||
box.horizontal:dir(rtl)
|
||||
label#label3:dir(rtl)
|
||||
label#label2:dir(rtl)
|
||||
label#label1:dir(rtl)
|
||||
label#label2:dir(rtl)
|
||||
label#label3:dir(rtl)
|
||||
|
@ -3,5 +3,5 @@
|
||||
expander:dir(rtl)
|
||||
box.vertical:dir(rtl)
|
||||
title.horizontal:dir(rtl)
|
||||
label:dir(rtl)
|
||||
arrow.horizontal:dir(rtl)
|
||||
label:dir(rtl)
|
||||
|
Loading…
Reference in New Issue
Block a user