From eb4020134edcfca36964a94cc61b474706f67b4e Mon Sep 17 00:00:00 2001 From: Tomer Shalev Date: Tue, 6 Oct 2009 16:56:13 +0000 Subject: [PATCH] Moved RTL handling in lcd driver deeper, from puts_style_offset() to putsxyofs() git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22986 a1c6a512-1295-4272-9138-f99709370657 --- firmware/drivers/lcd-bitmap-common.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/firmware/drivers/lcd-bitmap-common.c b/firmware/drivers/lcd-bitmap-common.c index 9d88eba3b2..b4bc11c706 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); }