diff options
-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)) |