diff options
Diffstat (limited to 'apps/gui/quickscreen.c')
-rw-r--r-- | apps/gui/quickscreen.c | 25 |
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 | ||
323 | static bool gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_enter, bool *usb) | 323 | static 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 | ||
411 | static const struct settings_list *get_setting(int gs_value, | 417 | static 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 */ |