summaryrefslogtreecommitdiff
path: root/apps/gui/gwps.c
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2009-03-19 23:04:39 +0000
committerThomas Martitz <kugel@rockbox.org>2009-03-19 23:04:39 +0000
commitce6b116bc1c09b665e4a79272bc409b5e27f773e (patch)
tree6869595cd9da71760e52f804804ecb2d137dc207 /apps/gui/gwps.c
parentcd34de693cc629405cd61132a6429f0421c7566d (diff)
downloadrockbox-ce6b116bc1c09b665e4a79272bc409b5e27f773e.tar.gz
rockbox-ce6b116bc1c09b665e4a79272bc409b5e27f773e.zip
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
Diffstat (limited to 'apps/gui/gwps.c')
-rw-r--r--apps/gui/gwps.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/apps/gui/gwps.c b/apps/gui/gwps.c
index 7bf676263c..89b8bf1960 100644
--- a/apps/gui/gwps.c
+++ b/apps/gui/gwps.c
@@ -172,18 +172,20 @@ void gwps_fix_statusbars(void)
172 172
173static void gwps_leave_wps(void) 173static void gwps_leave_wps(void)
174{ 174{
175 int oldbars = VP_SB_HIDE_ALL; 175 int i, oldbars = VP_SB_HIDE_ALL;
176 176
177 FOR_NB_SCREENS(i)
178 gui_wps[i].display->stop_scroll();
177 if (global_settings.statusbar) 179 if (global_settings.statusbar)
178 oldbars = VP_SB_ALLSCREENS; 180 oldbars = VP_SB_ALLSCREENS;
179 181
180 viewportmanager_set_statusbar(oldbars);
181#if LCD_DEPTH > 1 182#if LCD_DEPTH > 1
182 show_main_backdrop(); 183 show_main_backdrop();
183#endif 184#endif
184#if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 185#if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1
185 show_remote_main_backdrop(); 186 show_remote_main_backdrop();
186#endif 187#endif
188 viewportmanager_set_statusbar(oldbars);
187} 189}
188 190
189/* The WPS can be left in two ways: 191/* The WPS can be left in two ways:
@@ -207,7 +209,6 @@ long gui_wps_show(void)
207 long last_left = 0, last_right = 0; 209 long last_left = 0, last_right = 0;
208 210
209 wps_state_init(); 211 wps_state_init();
210 gwps_fix_statusbars();
211 212
212#ifdef HAVE_LCD_CHARCELLS 213#ifdef HAVE_LCD_CHARCELLS
213 status_set_audio(true); 214 status_set_audio(true);
@@ -221,6 +222,7 @@ long gui_wps_show(void)
221#if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 222#if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1
222 show_remote_wps_backdrop(); 223 show_remote_wps_backdrop();
223#endif 224#endif
225 gwps_fix_statusbars();
224 226
225#ifdef AB_REPEAT_ENABLE 227#ifdef AB_REPEAT_ENABLE
226 ab_repeat_init(); 228 ab_repeat_init();
@@ -232,7 +234,10 @@ long gui_wps_show(void)
232 wps_state.nid3 = audio_next_track(); 234 wps_state.nid3 = audio_next_track();
233 if (wps_state.id3) { 235 if (wps_state.id3) {
234 if (gui_wps_display()) 236 if (gui_wps_display())
237 {
238 gwps_leave_wps();
235 return 0; 239 return 0;
240 }
236 } 241 }
237 242
238 restore = true; 243 restore = true;
@@ -351,8 +356,7 @@ long gui_wps_show(void)
351 status_set_record(false); 356 status_set_record(false);
352 status_set_audio(false); 357 status_set_audio(false);
353#endif 358#endif
354 FOR_NB_SCREENS(i) 359 gwps_leave_wps();
355 gui_wps[i].display->stop_scroll();
356 return GO_TO_PREVIOUS_BROWSER; 360 return GO_TO_PREVIOUS_BROWSER;
357 break; 361 break;
358 362
@@ -578,8 +582,7 @@ long gui_wps_show(void)
578 break; 582 break;
579 /* menu key functions */ 583 /* menu key functions */
580 case ACTION_WPS_MENU: 584 case ACTION_WPS_MENU:
581 FOR_NB_SCREENS(i) 585 gwps_leave_wps();
582 gui_wps[i].display->stop_scroll();
583 return GO_TO_ROOT; 586 return GO_TO_ROOT;
584 break; 587 break;
585 588
@@ -707,8 +710,6 @@ long gui_wps_show(void)
707 if (global_settings.fade_on_stop) 710 if (global_settings.fade_on_stop)
708 fade(false, true); 711 fade(false, true);
709 712
710 FOR_NB_SCREENS(i)
711 gui_wps[i].display->stop_scroll();
712 if (bookmark) 713 if (bookmark)
713 bookmark_autobookmark(); 714 bookmark_autobookmark();
714 audio_stop(); 715 audio_stop();