From 2eb873cea62805f232e4633c73e67c4e2b116cd4 Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Wed, 15 Jan 2014 18:57:46 +0100 Subject: skins: Update SBS when changing activities. When changing activities (those that are indicated via %cs skin tag), the sbs needs to be updated, so that the UI viewport can be applied before that activity draws its UI. Fixes FS#12804. I hope this commit doesn't have bad side effects. Change-Id: If45654e356749f5f27991430dbd1da6f23e6f802 --- apps/gui/statusbar-skinned.c | 6 +++--- apps/misc.c | 12 ++++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/apps/gui/statusbar-skinned.c b/apps/gui/statusbar-skinned.c index fc9735da21..c991d8ea40 100644 --- a/apps/gui/statusbar-skinned.c +++ b/apps/gui/statusbar-skinned.c @@ -170,9 +170,9 @@ void sb_skin_update(enum screen_type screen, bool force) if (lcd_active() || (i != SCREEN_MAIN)) #endif { - bool full_update = skin_do_full_update(CUSTOM_STATUSBAR, screen); - skin_update(CUSTOM_STATUSBAR, screen, force || - full_update ? SKIN_REFRESH_ALL : SKIN_REFRESH_NON_STATIC); + if (force) + skin_request_full_update(CUSTOM_STATUSBAR); + skin_update(CUSTOM_STATUSBAR, screen, SKIN_REFRESH_NON_STATIC); } next_update[i] = current_tick + update_delay; /* don't update too often */ } diff --git a/apps/misc.c b/apps/misc.c index fa33bb5c4f..d63676eb89 100644 --- a/apps/misc.c +++ b/apps/misc.c @@ -1214,18 +1214,26 @@ static int current_activity_top = 0; void push_current_activity(enum current_activity screen) { current_activity[current_activity_top++] = screen; -#if defined(HAVE_LCD_BITMAP) && !defined(__PCTOOL__) FOR_NB_SCREENS(i) + { +#if defined(HAVE_LCD_BITMAP) && !defined(__PCTOOL__) skinlist_set_cfg(i, NULL); #endif + skin_update(CUSTOM_STATUSBAR, i, SKIN_REFRESH_ALL); + } } + void pop_current_activity(void) { current_activity_top--; -#if defined(HAVE_LCD_BITMAP) && !defined(__PCTOOL__) FOR_NB_SCREENS(i) + { +#if defined(HAVE_LCD_BITMAP) && !defined(__PCTOOL__) skinlist_set_cfg(i, NULL); #endif + skin_update(CUSTOM_STATUSBAR, i, SKIN_REFRESH_ALL); + } + } enum current_activity get_current_activity(void) { -- cgit v1.2.3