diff options
| author | Thomas Martitz <kugel@rockbox.org> | 2009-03-19 23:04:39 +0000 |
|---|---|---|
| committer | Thomas Martitz <kugel@rockbox.org> | 2009-03-19 23:04:39 +0000 |
| commit | ce6b116bc1c09b665e4a79272bc409b5e27f773e (patch) | |
| tree | 6869595cd9da71760e52f804804ecb2d137dc207 | |
| parent | cd34de693cc629405cd61132a6429f0421c7566d (diff) | |
| download | rockbox-ce6b116bc1c09b665e4a79272bc409b5e27f773e.zip rockbox-ce6b116bc1c09b665e4a79272bc409b5e27f773e.tar.gz rockbox-ce6b116bc1c09b665e4a79272bc409b5e27f773e.tar.bz2 rockbox-ce6b116bc1c09b665e4a79272bc409b5e27f773e.tar.xz | |
Put exiting the wps entirely into the hands of the wps (restoring backdrops and statusbars, stop scrolling). Remove the restoration code from root_menu, and add some gwps_leave_wps at every possible return/screen change. This also unifies exiting the wps code-wise.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20399 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | apps/gui/gwps.c | 19 | ||||
| -rw-r--r-- | apps/root_menu.c | 8 |
2 files changed, 10 insertions, 17 deletions
diff --git a/apps/gui/gwps.c b/apps/gui/gwps.c index 7bf6762..89b8bf1 100644 --- a/apps/gui/gwps.c +++ b/apps/gui/gwps.c @@ -172,18 +172,20 @@ void gwps_fix_statusbars(void) static void gwps_leave_wps(void) { - int oldbars = VP_SB_HIDE_ALL; + int i, oldbars = VP_SB_HIDE_ALL; + FOR_NB_SCREENS(i) + gui_wps[i].display->stop_scroll(); if (global_settings.statusbar) oldbars = VP_SB_ALLSCREENS; - viewportmanager_set_statusbar(oldbars); #if LCD_DEPTH > 1 show_main_backdrop(); #endif #if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 show_remote_main_backdrop(); #endif + viewportmanager_set_statusbar(oldbars); } /* The WPS can be left in two ways: @@ -207,7 +209,6 @@ long gui_wps_show(void) long last_left = 0, last_right = 0; wps_state_init(); - gwps_fix_statusbars(); #ifdef HAVE_LCD_CHARCELLS status_set_audio(true); @@ -221,6 +222,7 @@ long gui_wps_show(void) #if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 show_remote_wps_backdrop(); #endif + gwps_fix_statusbars(); #ifdef AB_REPEAT_ENABLE ab_repeat_init(); @@ -232,7 +234,10 @@ long gui_wps_show(void) wps_state.nid3 = audio_next_track(); if (wps_state.id3) { if (gui_wps_display()) + { + gwps_leave_wps(); return 0; + } } restore = true; @@ -351,8 +356,7 @@ long gui_wps_show(void) status_set_record(false); status_set_audio(false); #endif - FOR_NB_SCREENS(i) - gui_wps[i].display->stop_scroll(); + gwps_leave_wps(); return GO_TO_PREVIOUS_BROWSER; break; @@ -578,8 +582,7 @@ long gui_wps_show(void) break; /* menu key functions */ case ACTION_WPS_MENU: - FOR_NB_SCREENS(i) - gui_wps[i].display->stop_scroll(); + gwps_leave_wps(); return GO_TO_ROOT; break; @@ -707,8 +710,6 @@ long gui_wps_show(void) if (global_settings.fade_on_stop) fade(false, true); - FOR_NB_SCREENS(i) - gui_wps[i].display->stop_scroll(); if (bookmark) bookmark_autobookmark(); audio_stop(); diff --git a/apps/root_menu.c b/apps/root_menu.c index c92547a..71391ea 100644 --- a/apps/root_menu.c +++ b/apps/root_menu.c @@ -262,14 +262,6 @@ static int wpsscrn(void* param) { splash(HZ*2, ID2P(LANG_NOTHING_TO_RESUME)); } -#if LCD_DEPTH > 1 - show_main_backdrop(); -#endif -#if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 - show_remote_main_backdrop(); -#endif - /* always re-enable the statusbar after the WPS */ - viewportmanager_set_statusbar(VP_SB_ALLSCREENS); return ret_val; } #if CONFIG_TUNER |