summaryrefslogtreecommitdiff
path: root/apps/gui/skin_engine/skin_render.c
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2012-03-20 21:27:33 +1100
committerJonathan Gordon <rockbox@jdgordon.info>2012-03-20 22:10:19 +1100
commit94139ac0bd3e1ca5d384ac8ac5ad2a915d633a82 (patch)
tree46d24ce01ca9a04dbacb08fa090ba4705c3040f0 /apps/gui/skin_engine/skin_render.c
parent287bf712474494590013b4055cb1e8b6cd45e661 (diff)
downloadrockbox-94139ac0bd3e1ca5d384ac8ac5ad2a915d633a82.tar.gz
rockbox-94139ac0bd3e1ca5d384ac8ac5ad2a915d633a82.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: I3725c51518be724ce7aacee9877663c2de6866fa
Diffstat (limited to 'apps/gui/skin_engine/skin_render.c')
-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 0a1759d91a..23b22bcdfa 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
@@ -884,6 +885,13 @@ void skin_render(struct gui_wps *gwps, unsigned refresh_mode)
884 display->set_framebuffer(NULL); 885 display->set_framebuffer(NULL);
885 skin_backdrop_show(data->backdrop_id); 886 skin_backdrop_show(data->backdrop_id);
886#endif 887#endif
888
889 if (((refresh_mode&SKIN_REFRESH_ALL) == SKIN_REFRESH_ALL))
890 {
891 /* If this is the UI viewport then let the UI know
892 * to redraw itself */
893 send_event(GUI_EVENT_NEED_UI_UPDATE, NULL);
894 }
887 /* Restore the default viewport */ 895 /* Restore the default viewport */
888 display->set_viewport(NULL); 896 display->set_viewport(NULL);
889 display->update(); 897 display->update();