diff options
author | Jonathan Gordon <rockbox@jdgordon.info> | 2012-03-14 22:16:58 +1100 |
---|---|---|
committer | Jonathan Gordon <rockbox@jdgordon.info> | 2012-03-14 22:52:24 +1100 |
commit | cb9bc3bbc8a66c3d5296bfbc68f4487c39c6ac68 (patch) | |
tree | 9350c7890142aa0c58cddf2cb30076ff30bf5b6d /apps/gui/skin_engine/skin_render.c | |
parent | 47115ba8347f857fa5f59dc4326127e5849ea4eb (diff) |
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/skin_render.c')
-rw-r--r-- | apps/gui/skin_engine/skin_render.c | 8 |
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 @@ #include "config.h" #include "core_alloc.h" #include "kernel.h" +#include "appevents.h" #ifdef HAVE_ALBUMART #include "albumart.h" #endif @@ -859,6 +860,13 @@ void skin_render(struct gui_wps *gwps, unsigned refresh_mode) display->set_framebuffer(NULL); skin_backdrop_show(data->backdrop_id); #endif + + if (((refresh_mode&SKIN_REFRESH_ALL) == SKIN_REFRESH_ALL)) + { + /* If this is the UI viewport then let the UI know + * to redraw itself */ + send_event(GUI_EVENT_NEED_UI_UPDATE, NULL); + } /* Restore the default viewport */ display->set_viewport(NULL); display->update(); |