From cb9bc3bbc8a66c3d5296bfbc68f4487c39c6ac68 Mon Sep 17 00:00:00 2001 From: Jonathan Gordon Date: Wed, 14 Mar 2012 22:16:58 +1100 Subject: 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 --- apps/gui/skin_engine/skin_render.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'apps/gui/skin_engine') 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(); -- cgit v1.2.3