diff options
| author | Thomas Martitz <kugel@rockbox.org> | 2014-01-15 18:57:46 +0100 |
|---|---|---|
| committer | Thomas Martitz <kugel@rockbox.org> | 2014-01-15 18:57:46 +0100 |
| commit | 2eb873cea62805f232e4633c73e67c4e2b116cd4 (patch) | |
| tree | f9cd0729fe5406e96aa11dd279a89294beeaecb3 | |
| parent | 644d9eab6c55c736e72afdb4a8f3432a07d8fc11 (diff) | |
| download | rockbox-2eb873cea62805f232e4633c73e67c4e2b116cd4.zip rockbox-2eb873cea62805f232e4633c73e67c4e2b116cd4.tar.gz rockbox-2eb873cea62805f232e4633c73e67c4e2b116cd4.tar.bz2 rockbox-2eb873cea62805f232e4633c73e67c4e2b116cd4.tar.xz | |
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
| -rw-r--r-- | apps/gui/statusbar-skinned.c | 6 | ||||
| -rw-r--r-- | 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 fc9735d..c991d8e 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 fa33bb5..d63676e 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) { |