summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Müllner <fmuellner@gnome.org>2013-09-10 20:56:09 +0200
committerEmmanuele Bassi <ebassi@gnome.org>2013-11-20 23:16:05 +0000
commitb45a1ded44dc585a9755cb9b55729931fd40c410 (patch)
tree544fffab10828e82da00fd01bfdc49a2054cd04e
parentff5763c6e2044bcf355ef1026001e5e62726e0c2 (diff)
downloadclutter-b45a1ded44dc585a9755cb9b55729931fd40c410.tar.gz
text: Consider text direction when computing layout offsets
Currently this is only the case when the actor's x-expand/x-align flags have been set and clutter_text_compute_layout_offsets() is used. https://bugzilla.gnome.org/show_bug.cgi?id=705779 (cherry picked from commit 986e46dc6677a708cd3db8abaf28f09cd2007c4b) Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
-rw-r--r--clutter/clutter-text.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/clutter/clutter-text.c b/clutter/clutter-text.c
index 56061259f..0cfb63f69 100644
--- a/clutter/clutter-text.c
+++ b/clutter/clutter-text.c
@@ -2264,6 +2264,7 @@ clutter_text_paint (ClutterActor *self)
{
PangoRectangle logical_rect = { 0, };
gint actor_width, text_width;
+ gboolean rtl;
pango_layout_get_extents (layout, NULL, &logical_rect);
@@ -2276,17 +2277,19 @@ clutter_text_paint (ClutterActor *self)
- 2 * TEXT_PADDING;
text_width = logical_rect.width / PANGO_SCALE;
+ rtl = clutter_actor_get_text_direction (self) == CLUTTER_TEXT_DIRECTION_RTL;
+
if (actor_width < text_width)
{
gint cursor_x = priv->cursor_pos.x;
if (priv->position == -1)
{
- text_x = actor_width - text_width;
+ text_x = rtl ? TEXT_PADDING : actor_width - text_width;
}
else if (priv->position == 0)
{
- text_x = TEXT_PADDING;
+ text_x = rtl ? actor_width - text_width : TEXT_PADDING;
}
else
{
@@ -2302,7 +2305,7 @@ clutter_text_paint (ClutterActor *self)
}
else
{
- text_x = TEXT_PADDING;
+ text_x = rtl ? actor_width - text_width : TEXT_PADDING;
}
}
else if (!priv->editable && !(priv->wrap && priv->ellipsize))