1
0
Fork 0
forked from len0rd/rockbox

set viewport to default one just for safe.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24969 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Teruaki Kawashima 2010-02-28 14:12:41 +00:00
parent 75e105a6a3
commit 38efc71615

View file

@ -64,7 +64,7 @@ struct viewport_stack_item
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
static void viewportmanager_redraw(void* data); static void viewportmanager_redraw(void* data);
static int theme_stack_top[NB_SCREENS]; /* the last item added */ static int theme_stack_top[NB_SCREENS]; /* the last item added */
static struct viewport_stack_item theme_stack[NB_SCREENS][VPSTACK_DEPTH]; static struct viewport_stack_item theme_stack[NB_SCREENS][VPSTACK_DEPTH];
static bool is_theme_enabled(enum screen_type screen); static bool is_theme_enabled(enum screen_type screen);
@ -91,7 +91,7 @@ static void toggle_events(bool enable)
remove_event(PLAYBACK_EVENT_TRACK_CHANGE, do_sbs_update_callback); remove_event(PLAYBACK_EVENT_TRACK_CHANGE, do_sbs_update_callback);
remove_event(PLAYBACK_EVENT_NEXTTRACKID3_AVAILABLE, do_sbs_update_callback); remove_event(PLAYBACK_EVENT_NEXTTRACKID3_AVAILABLE, do_sbs_update_callback);
remove_event(GUI_EVENT_ACTIONUPDATE, viewportmanager_redraw); remove_event(GUI_EVENT_ACTIONUPDATE, viewportmanager_redraw);
} }
} }
@ -162,6 +162,7 @@ static void toggle_theme(enum screen_type screen, bool force)
screens[screen].clear_viewport(); screens[screen].clear_viewport();
screens[screen].update_viewport(); screens[screen].update_viewport();
} }
screens[screen].set_viewport(NULL);
} }
intptr_t force = first_boot?0:1; intptr_t force = first_boot?0:1;
send_event(GUI_EVENT_ACTIONUPDATE, (void*)force); send_event(GUI_EVENT_ACTIONUPDATE, (void*)force);
@ -228,8 +229,8 @@ static void viewportmanager_redraw(void* data)
FOR_NB_SCREENS(i) FOR_NB_SCREENS(i)
{ {
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
if (statusbar_position(i) == STATUSBAR_CUSTOM) if (statusbar_position(i) == STATUSBAR_CUSTOM)
sb_skin_update(i, NULL != data); sb_skin_update(i, NULL != data);
else if (statusbar_position(i) != STATUSBAR_OFF) else if (statusbar_position(i) != STATUSBAR_OFF)
#endif #endif
gui_statusbar_draw(&statusbars.statusbars[i], NULL != data); gui_statusbar_draw(&statusbars.statusbars[i], NULL != data);
@ -244,7 +245,7 @@ void viewportmanager_init()
{ {
theme_stack_top[i] = -1; /* the next call fixes this to 0 */ theme_stack_top[i] = -1; /* the next call fixes this to 0 */
/* We always want the theme enabled by default... */ /* We always want the theme enabled by default... */
viewportmanager_theme_enable(i, true, NULL); viewportmanager_theme_enable(i, true, NULL);
} }
#else #else
add_event(GUI_EVENT_ACTIONUPDATE, false, viewportmanager_redraw); add_event(GUI_EVENT_ACTIONUPDATE, false, viewportmanager_redraw);
@ -266,7 +267,7 @@ void viewportmanager_theme_changed(const int which)
{ {
} }
if (which & THEME_LANGUAGE) if (which & THEME_LANGUAGE)
{ {
} }
if (which & THEME_STATUSBAR) if (which & THEME_STATUSBAR)
{ {
@ -353,20 +354,19 @@ void viewport_set_defaults(struct viewport *vp,
const enum screen_type screen) const enum screen_type screen)
{ {
#if defined(HAVE_LCD_BITMAP) && !defined(__PCTOOL__) #if defined(HAVE_LCD_BITMAP) && !defined(__PCTOOL__)
struct viewport *sbs_area = NULL; struct viewport *sbs_area = NULL;
if (!is_theme_enabled(screen)) if (!is_theme_enabled(screen))
{ {
viewport_set_fullscreen(vp, screen); viewport_set_fullscreen(vp, screen);
return; return;
} }
sbs_area = sb_skin_get_info_vp(screen); sbs_area = sb_skin_get_info_vp(screen);
if (sbs_area) if (sbs_area)
*vp = *sbs_area; *vp = *sbs_area;
else else
#endif /* HAVE_LCD_BITMAP */ #endif /* HAVE_LCD_BITMAP */
viewport_set_fullscreen(vp, screen); viewport_set_fullscreen(vp, screen);
} }
@ -418,7 +418,7 @@ const char* viewport_parse_viewport(struct viewport *vp,
/* X and Y *must* be set */ /* X and Y *must* be set */
if (!LIST_VALUE_PARSED(set, PL_X) || !LIST_VALUE_PARSED(set, PL_Y)) if (!LIST_VALUE_PARSED(set, PL_X) || !LIST_VALUE_PARSED(set, PL_Y))
return NULL; return NULL;
/* check for negative values */ /* check for negative values */
if (vp->x < 0) if (vp->x < 0)
vp->x += screens[screen].lcdwidth; vp->x += screens[screen].lcdwidth;
if (vp->y < 0) if (vp->y < 0)