summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Wilgus <wilgus.william@gmail.com>2023-11-25 02:36:17 -0500
committerWilliam Wilgus <wilgus.william@gmail.com>2023-11-25 02:48:49 -0500
commit40e685fb7138dbd56855769c3bcd5568f0819f3c (patch)
tree94545efe522276e787dcd42a4a8b0af19a9ddacf
parentb6ce98c55c31039fdc8189b4cbe0bb7e56eaf894 (diff)
downloadrockbox-40e685fb71.tar.gz
rockbox-40e685fb71.zip
[Feature] run .link shortcuts within menu shortcuts
Change-Id: Ifbc2b95ab367ae18fa51074a3f8ea551ad2ab6a8
-rw-r--r--apps/root_menu.c9
-rw-r--r--apps/shortcuts.c9
2 files changed, 16 insertions, 2 deletions
diff --git a/apps/root_menu.c b/apps/root_menu.c
index 762f5b2961..360f8ae8ce 100644
--- a/apps/root_menu.c
+++ b/apps/root_menu.c
@@ -764,7 +764,6 @@ static int load_plugin_screen(char *key)
while(loops-- > 0) /* just to keep things from getting out of hand */
{
-
int opret = open_plugin_load_entry(key);
struct open_plugin_entry_t *op_entry = open_plugin_get_entry();
char *path = op_entry->path;
@@ -773,7 +772,6 @@ static int load_plugin_screen(char *key)
param = NULL;
if (path[0] == '\0' && key)
path = P2STR((unsigned char *)key);
-
int ret = plugin_load(path, param);
if (ret == PLUGIN_USB_CONNECTED || ret == PLUGIN_ERROR)
@@ -781,7 +779,14 @@ static int load_plugin_screen(char *key)
else if (ret == PLUGIN_GOTO_WPS)
ret_val = GO_TO_WPS;
else if (ret == PLUGIN_GOTO_PLUGIN)
+ {
+ if (key == ID2P(LANG_SHORTCUTS) &&
+ op_entry->lang_id == ID2P(LANG_OPEN_PLUGIN))
+ {
+ op_entry->lang_id = ID2P(LANG_SHORTCUTS);
+ }
continue;
+ }
else
{
ret_val = GO_TO_PREVIOUS;
diff --git a/apps/shortcuts.c b/apps/shortcuts.c
index b52ff4a741..2ac3ceb3a0 100644
--- a/apps/shortcuts.c
+++ b/apps/shortcuts.c
@@ -620,13 +620,21 @@ int do_shortcut_menu(void *ignored)
while (done == GO_TO_PREVIOUS)
{
list.count = shortcut_count;
+ if(tree_get_context()->out_of_tree > 0) /* a shortcut has been selected */
+ {
+ done = GO_TO_FILEBROWSER;
+ break;
+ }
+
if (simplelist_show_list(&list))
break; /* some error happened?! */
+
if (list.selection == -1)
break;
else
{
sc = get_shortcut(list.selection);
+
if (!sc)
continue;
@@ -668,6 +676,7 @@ int do_shortcut_menu(void *ignored)
if (sc->type == SHORTCUT_FILE)
browse.flags |= BROWSE_RUNFILE;
done = rockbox_browse(&browse);
+
}
break;
case SHORTCUT_SETTING: