summaryrefslogtreecommitdiff
path: root/apps/gui/skin_engine
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2012-03-14 22:16:58 +1100
committerJonathan Gordon <rockbox@jdgordon.info>2012-03-14 22:52:24 +1100
commitcb9bc3bbc8a66c3d5296bfbc68f4487c39c6ac68 (patch)
tree9350c7890142aa0c58cddf2cb30076ff30bf5b6d /apps/gui/skin_engine
parent47115ba8347f857fa5f59dc4326127e5849ea4eb (diff)
downloadrockbox-cb9bc3bbc8a66c3d5296bfbc68f4487c39c6ac68.tar.gz
rockbox-cb9bc3bbc8a66c3d5296bfbc68f4487c39c6ac68.zip
Fix FS#12606 - next track can cause the screen to be cleared
This is a bit of a hack. We now trigger an event when the skin engine is doing a full redraw (which means fullscreen clear) before the lcd_update() to give the current screen a chance to redraw to avoid the screen flicker. This commit fixes the issue for screens which are entirely the list widget (i.e browser and menus), other screens will need aditional fixes (i.e quickscreen, time&date screen) Change-Id: I3ffdcd8ccad2c663732f8d5983049c837de00fe5
Diffstat (limited to 'apps/gui/skin_engine')
-rw-r--r--apps/gui/skin_engine/skin_render.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/apps/gui/skin_engine/skin_render.c b/apps/gui/skin_engine/skin_render.c
index 80d8c83d27..965d785233 100644
--- a/apps/gui/skin_engine/skin_render.c
+++ b/apps/gui/skin_engine/skin_render.c
@@ -29,6 +29,7 @@
29#include "config.h" 29#include "config.h"
30#include "core_alloc.h" 30#include "core_alloc.h"
31#include "kernel.h" 31#include "kernel.h"
32#include "appevents.h"
32#ifdef HAVE_ALBUMART 33#ifdef HAVE_ALBUMART
33#include "albumart.h" 34#include "albumart.h"
34#endif 35#endif
@@ -859,6 +860,13 @@ void skin_render(struct gui_wps *gwps, unsigned refresh_mode)
859 display->set_framebuffer(NULL); 860 display->set_framebuffer(NULL);
860 skin_backdrop_show(data->backdrop_id); 861 skin_backdrop_show(data->backdrop_id);
861#endif 862#endif
863
864 if (((refresh_mode&SKIN_REFRESH_ALL) == SKIN_REFRESH_ALL))
865 {
866 /* If this is the UI viewport then let the UI know
867 * to redraw itself */
868 send_event(GUI_EVENT_NEED_UI_UPDATE, NULL);
869 }
862 /* Restore the default viewport */ 870 /* Restore the default viewport */
863 display->set_viewport(NULL); 871 display->set_viewport(NULL);
864 display->update(); 872 display->update();