diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-01-16 00:19:41 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-01-16 00:19:41 +0000 |
commit | e1a308d15104f60a168e62a14215496250300e29 (patch) | |
tree | 26a35bcc21ae80960613da6b72ba2089119d6ace | |
parent | 141c725489f153d7705de7f208c6acec81bc47af (diff) | |
parent | bbfaacb59872c1de1a84d5ec0eb89573ef4ce055 (diff) | |
download | gtk+-e1a308d15104f60a168e62a14215496250300e29.tar.gz |
Merge branch 'rtl-margins' into 'master'
Flip margin-start and -end in RTL
Closes #3583
See merge request GNOME/gtk!3081
-rw-r--r-- | gtk/gtkwidget.c | 5 | ||||
-rw-r--r-- | testsuite/reftests/box-flip.css | 23 | ||||
-rw-r--r-- | testsuite/reftests/box-flip.ref.ui | 28 | ||||
-rw-r--r-- | testsuite/reftests/box-flip.ui | 30 |
4 files changed, 85 insertions, 1 deletions
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 6efcdccc4a..45a3720b18 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -3900,7 +3900,10 @@ gtk_widget_allocate (GtkWidget *widget, priv->allocated_height = height; priv->allocated_size_baseline = baseline; - adjusted.x = priv->margin.left; + if (_gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR) + adjusted.x = priv->margin.left; + else + adjusted.x = priv->margin.right; adjusted.y = priv->margin.top; adjusted.width = width - priv->margin.left - priv->margin.right; adjusted.height = height - priv->margin.top - priv->margin.bottom; diff --git a/testsuite/reftests/box-flip.css b/testsuite/reftests/box-flip.css new file mode 100644 index 0000000000..ffda8b0003 --- /dev/null +++ b/testsuite/reftests/box-flip.css @@ -0,0 +1,23 @@ +@import "reset-to-defaults.css"; + +window { + background-color: purple; +} + +#red { + background-color: red; + min-width: 100px; + min-height: 100px; +} + +#yellow { + background-color: yellow; + min-width: 100px; + min-height: 100px; +} + +#green { + background-color: green; + min-width: 100px; + min-height: 100px; +} diff --git a/testsuite/reftests/box-flip.ref.ui b/testsuite/reftests/box-flip.ref.ui new file mode 100644 index 0000000000..d962c80327 --- /dev/null +++ b/testsuite/reftests/box-flip.ref.ui @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<interface> + <object class="GtkWindow" id="window1"> + <property name="decorated">0</property> + <property name="resizable">0</property> + <child> + <object class="GtkBox"> + <child> + <object class="GtkDrawingArea"> + <property name="name">green</property> + <property name="margin-end">50</property> + </object> + </child> + <child> + <object class="GtkDrawingArea"> + <property name="name">yellow</property> + <property name="margin-end">10</property> + </object> + </child> + <child> + <object class="GtkDrawingArea"> + <property name="name">red</property> + </object> + </child> + </object> + </child> + </object> +</interface> diff --git a/testsuite/reftests/box-flip.ui b/testsuite/reftests/box-flip.ui new file mode 100644 index 0000000000..8de1030f31 --- /dev/null +++ b/testsuite/reftests/box-flip.ui @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<interface> + <object class="GtkWindow" id="window1"> + <property name="decorated">0</property> + <property name="resizable">0</property> + <signal name="map" handler="reftest:set_default_direction_rtl" swapped="no"/> + <signal name="destroy" handler="reftest:set_default_direction_ltr" swapped="no"/> + <child> + <object class="GtkBox"> + <child> + <object class="GtkDrawingArea"> + <property name="name">red</property> + </object> + </child> + <child> + <object class="GtkDrawingArea"> + <property name="name">yellow</property> + <property name="margin-start">10</property> + </object> + </child> + <child> + <object class="GtkDrawingArea"> + <property name="margin-start">50</property> + <property name="name">green</property> + </object> + </child> + </object> + </child> + </object> +</interface> |