diff options
author | Florian Müllner <fmuellner@gnome.org> | 2013-09-10 20:56:09 +0200 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2013-11-20 23:16:05 +0000 |
commit | b45a1ded44dc585a9755cb9b55729931fd40c410 (patch) | |
tree | 544fffab10828e82da00fd01bfdc49a2054cd04e | |
parent | ff5763c6e2044bcf355ef1026001e5e62726e0c2 (diff) | |
download | clutter-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.c | 9 |
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)) |