From 0432147f2f2f6a505404ae26f85c0ca22a782bca Mon Sep 17 00:00:00 2001 From: Jonathan Gordon Date: Wed, 13 Oct 2010 09:46:01 +0000 Subject: Fix FS#11593 - %Vf() and %Vb() should be able to be used in conditionals. Remember that these tags cause a new line to get drawn so text/tags on the same line wont be displayed git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28266 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/skin_engine/skin_render.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'apps/gui') diff --git a/apps/gui/skin_engine/skin_render.c b/apps/gui/skin_engine/skin_render.c index b3e9c74825..a9e6319317 100644 --- a/apps/gui/skin_engine/skin_render.c +++ b/apps/gui/skin_engine/skin_render.c @@ -617,7 +617,17 @@ static void skin_render_viewport(struct skin_element* viewport, struct gui_wps * func = skin_render_line; needs_update = func(line, &info); - +#if (LCD_DEPTH > 1) || (defined(HAVE_REMOTE_LCD) && (LCD_REMOTE_DEPTH > 1)) + if (skin_viewport->vp.fg_pattern != skin_viewport->start_fgcolour || + skin_viewport->vp.bg_pattern != skin_viewport->start_bgcolour) + { + /* 2bit lcd drivers need lcd_set_viewport() to be called to change + * the colour, 16bit doesnt. But doing this makes static text + * get the new colour also */ + needs_update = true; + display->set_viewport(&skin_viewport->vp); + } +#endif /* only update if the line needs to be, and there is something to write */ if (refresh_type && needs_update) { -- cgit v1.2.3