Shortcuts Menu Update

Change Browser shortcut to the plugin icon
drop back into WPS on opx return
allow same action to exit shortcut menu as entered -- might be problematic

Change-Id: Id7013a514c8e8862ee1da44b033d10b7519e9127
This commit is contained in:
William Wilgus 2021-03-08 21:59:04 -05:00
parent c9e8d96e77
commit 13178d23b8
3 changed files with 16 additions and 1 deletions

View file

@ -431,6 +431,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected,
{ {
global_status.last_screen = GO_TO_SHORTCUTMENU; global_status.last_screen = GO_TO_SHORTCUTMENU;
ret = quick_screen_quick(action); ret = quick_screen_quick(action);
done = true;
} }
else else
quick_screen_quick(action); quick_screen_quick(action);

View file

@ -738,6 +738,7 @@ void root_menu(void)
{ {
int previous_browser = GO_TO_FILEBROWSER; int previous_browser = GO_TO_FILEBROWSER;
int selected = 0; int selected = 0;
int shortcut_origin = GO_TO_ROOT;
push_current_activity(ACTIVITY_MAINMENU); push_current_activity(ACTIVITY_MAINMENU);
@ -824,10 +825,12 @@ void root_menu(void)
char *key; char *key;
if (global_status.last_screen == GO_TO_SHORTCUTMENU) if (global_status.last_screen == GO_TO_SHORTCUTMENU)
{ {
shortcut_origin = last_screen;
global_status.last_screen = last_screen; global_status.last_screen = last_screen;
key = ID2P(LANG_SHORTCUTS); key = ID2P(LANG_SHORTCUTS);
} }
else else
{
switch (last_screen) switch (last_screen)
{ {
case GO_TO_ROOT: case GO_TO_ROOT:
@ -843,6 +846,7 @@ void root_menu(void)
key = ID2P(LANG_OPEN_PLUGIN); key = ID2P(LANG_OPEN_PLUGIN);
break; break;
} }
}
open_plugin_get_entry(key, &open_plugin_entry); open_plugin_get_entry(key, &open_plugin_entry);
char *path = open_plugin_entry.path; char *path = open_plugin_entry.path;
@ -852,6 +856,14 @@ void root_menu(void)
next_screen = load_plugin_screen(path, param); next_screen = load_plugin_screen(path, param);
/* shortcuts may take several trips through the GO_TO_PLUGIN case
make sure we preserve and restore the origin */
if (next_screen == GO_TO_PREVIOUS && shortcut_origin != GO_TO_ROOT)
{
next_screen = shortcut_origin;
shortcut_origin = GO_TO_ROOT;
}
previous_browser = (next_screen != GO_TO_WPS) ? GO_TO_FILEBROWSER : GO_TO_PLUGIN; previous_browser = (next_screen != GO_TO_WPS) ? GO_TO_FILEBROWSER : GO_TO_PLUGIN;
break; break;
} }

View file

@ -425,6 +425,8 @@ static int shortcut_menu_get_action(int action, struct gui_synclist *lists)
(void)lists; (void)lists;
if (action == ACTION_STD_OK) if (action == ACTION_STD_OK)
return ACTION_STD_CANCEL; return ACTION_STD_CANCEL;
else if (action == ACTION_STD_QUICKSCREEN && action != ACTION_STD_CONTEXT)
return ACTION_STD_CANCEL;
else if (action == ACTION_STD_CONTEXT) else if (action == ACTION_STD_CONTEXT)
{ {
int selection = gui_synclist_get_sel_pos(lists); int selection = gui_synclist_get_sel_pos(lists);
@ -459,7 +461,7 @@ static enum themable_icons shortcut_menu_get_icon(int selected_item, void * data
case SHORTCUT_FILE: case SHORTCUT_FILE:
return filetype_get_icon(filetype_get_attr(sc->u.path)); return filetype_get_icon(filetype_get_attr(sc->u.path));
case SHORTCUT_BROWSER: case SHORTCUT_BROWSER:
return Icon_Folder; return Icon_Plugin;
case SHORTCUT_SETTING: case SHORTCUT_SETTING:
return Icon_Menu_setting; return Icon_Menu_setting;
case SHORTCUT_DEBUGITEM: case SHORTCUT_DEBUGITEM: