summaryrefslogtreecommitdiff
path: root/apps/gui/quickscreen.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/quickscreen.c')
-rw-r--r--apps/gui/quickscreen.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/apps/gui/quickscreen.c b/apps/gui/quickscreen.c
index e403e13e6c..141eb1a16b 100644
--- a/apps/gui/quickscreen.c
+++ b/apps/gui/quickscreen.c
@@ -320,13 +320,13 @@ static int quickscreen_touchscreen_button(void)
320} 320}
321#endif 321#endif
322 322
323static bool gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_enter, bool *usb) 323static int gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_enter, bool *usb)
324{ 324{
325 int button; 325 int button;
326 struct viewport parent[NB_SCREENS]; 326 struct viewport parent[NB_SCREENS];
327 struct viewport vps[NB_SCREENS][QUICKSCREEN_ITEM_COUNT]; 327 struct viewport vps[NB_SCREENS][QUICKSCREEN_ITEM_COUNT];
328 struct viewport vp_icons[NB_SCREENS]; 328 struct viewport vp_icons[NB_SCREENS];
329 bool changed = false; 329 int ret = QUICKSCREEN_OK;
330 /* To quit we need either : 330 /* To quit we need either :
331 * - a second press on the button that made us enter 331 * - a second press on the button that made us enter
332 * - an action taken while pressing the enter button, 332 * - an action taken while pressing the enter button,
@@ -367,7 +367,7 @@ static bool gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_ente
367 } 367 }
368 if (gui_quickscreen_do_button(qs, button)) 368 if (gui_quickscreen_do_button(qs, button))
369 { 369 {
370 changed = true; 370 ret |= QUICKSCREEN_CHANGED;
371 can_quit = true; 371 can_quit = true;
372 FOR_NB_SCREENS(i) 372 FOR_NB_SCREENS(i)
373 gui_quickscreen_draw(qs, &screens[i], &parent[i], 373 gui_quickscreen_draw(qs, &screens[i], &parent[i],
@@ -389,6 +389,11 @@ static bool gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_ente
389 FOR_NB_SCREENS(i) 389 FOR_NB_SCREENS(i)
390 skin_update(CUSTOM_STATUSBAR, i, SKIN_REFRESH_NON_STATIC); 390 skin_update(CUSTOM_STATUSBAR, i, SKIN_REFRESH_NON_STATIC);
391 } 391 }
392 else if (button == ACTION_STD_CONTEXT)
393 {
394 ret |= QUICKSCREEN_GOTO_SHORTCUTS_MENU;
395 break;
396 }
392 if ((button == button_enter) && can_quit) 397 if ((button == button_enter) && can_quit)
393 break; 398 break;
394 399
@@ -405,7 +410,8 @@ static bool gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_ente
405 } 410 }
406 411
407 pop_current_activity(); 412 pop_current_activity();
408 return changed; 413
414 return ret;
409} 415}
410 416
411static const struct settings_list *get_setting(int gs_value, 417static const struct settings_list *get_setting(int gs_value,
@@ -427,9 +433,6 @@ int quick_screen_quick(int button_enter)
427#endif 433#endif
428 bool usb = false; 434 bool usb = false;
429 435
430 if (global_settings.shortcuts_replaces_qs)
431 return do_shortcut_menu(NULL);
432
433 qs.items[QUICKSCREEN_TOP] = 436 qs.items[QUICKSCREEN_TOP] =
434 get_setting(global_settings.qs_items[QUICKSCREEN_TOP], NULL); 437 get_setting(global_settings.qs_items[QUICKSCREEN_TOP], NULL);
435 qs.items[QUICKSCREEN_LEFT] = 438 qs.items[QUICKSCREEN_LEFT] =
@@ -442,7 +445,8 @@ int quick_screen_quick(int button_enter)
442 get_setting(global_settings.qs_items[QUICKSCREEN_BOTTOM], NULL); 445 get_setting(global_settings.qs_items[QUICKSCREEN_BOTTOM], NULL);
443 446
444 qs.callback = NULL; 447 qs.callback = NULL;
445 if (gui_syncquickscreen_run(&qs, button_enter, &usb)) 448 int ret = gui_syncquickscreen_run(&qs, button_enter, &usb);
449 if (ret & QUICKSCREEN_CHANGED)
446 { 450 {
447 settings_save(); 451 settings_save();
448 /* make sure repeat/shuffle/any other nasty ones get updated */ 452 /* make sure repeat/shuffle/any other nasty ones get updated */
@@ -465,7 +469,10 @@ int quick_screen_quick(int button_enter)
465 set_albumart_mode(global_settings.album_art); 469 set_albumart_mode(global_settings.album_art);
466#endif 470#endif
467 } 471 }
468 return (usb ? 1:0); 472 if (usb)
473 return QUICKSCREEN_IN_USB;
474 return ret & QUICKSCREEN_GOTO_SHORTCUTS_MENU ? QUICKSCREEN_GOTO_SHORTCUTS_MENU :
475 QUICKSCREEN_OK;
469} 476}
470 477
471/* stuff to make the quickscreen configurable */ 478/* stuff to make the quickscreen configurable */