summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/drivers/lcd-bitmap-common.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/firmware/drivers/lcd-bitmap-common.c b/firmware/drivers/lcd-bitmap-common.c
index 9d88eba..b4bc11c 100644
--- a/firmware/drivers/lcd-bitmap-common.c
+++ b/firmware/drivers/lcd-bitmap-common.c
@@ -85,6 +85,14 @@ static void LCDFN(putsxyofs)(int x, int y, int ofs, const unsigned char *str)
ucs = bidi_l2v(str, 1);
+ if (VP_IS_RTL(current_vp))
+ {
+ int w;
+
+ LCDFN(getstringsize)(str, &w, NULL);
+ x = current_vp->width - w - x;
+ }
+
while ((ch = *ucs++) != 0 && x < current_vp->width)
{
int width;
@@ -177,8 +185,6 @@ void LCDFN(puts_style_offset)(int x, int y, const unsigned char *str,
chars_in_str = utf8length((char *)str);
LCDFN(getstringsize)(str, &w, &h);
xpos = x * w / chars_in_str;
- if (VP_IS_RTL(current_vp))
- xpos = current_vp->width - w - xpos;
ypos = y * h;
LCDFN(putsxyofs_style)(xpos, ypos, str, style, w, h, offset);
}