1
0
Fork 0
forked from len0rd/rockbox

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
This commit is contained in:
Thomas Martitz 2014-01-15 18:57:46 +01:00
parent 644d9eab6c
commit 2eb873cea6
2 changed files with 13 additions and 5 deletions

View file

@ -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 */
}

View file

@ -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)
{