From 2bac3df7180a2a576d924ae2481eee341e73adf8 Mon Sep 17 00:00:00 2001 From: sorgelig Date: Mon, 4 Oct 2021 18:35:59 +0800 Subject: [PATCH] input: use X button on gamepad in file browser to go to parent folder. --- input.cpp | 12 ++++++++++-- menu.cpp | 3 ++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/input.cpp b/input.cpp index d2193fa..26b76d8 100644 --- a/input.cpp +++ b/input.cpp @@ -1648,6 +1648,10 @@ static void joy_digital(int jnum, uint32_t mask, uint32_t code, char press, int ev.code = KEY_BACKSPACE; break; + case JOY_BTN4: + ev.code = KEY_TAB; + break; + case JOY_L: ev.code = KEY_MINUS; break; @@ -2480,14 +2484,18 @@ static void input_cb(struct input_event *ev, struct input_absinfo *absinfo, int joy_digital(0, JOY_BTN1, 0, ev->value, 0); return; } - - if ((input[dev].mmap[SYS_BTN_MENU_FUNC] >> 16) ? + else if ((input[dev].mmap[SYS_BTN_MENU_FUNC] >> 16) ? (ev->code == (input[dev].mmap[SYS_BTN_MENU_FUNC] >> 16)) : (ev->code == input[dev].mmap[SYS_BTN_B])) { joy_digital(0, JOY_BTN2, 0, ev->value, 0); return; } + else if (ev->code == input[dev].mmap[SYS_BTN_X]) + { + joy_digital(0, JOY_BTN4, 0, ev->value, 0); + return; + } if (ev->code == input[dev].mmap[SYS_BTN_L]) { diff --git a/menu.cpp b/menu.cpp index f00856c..7196ebe 100644 --- a/menu.cpp +++ b/menu.cpp @@ -4398,11 +4398,12 @@ void HandleUI(void) { ScrollLongName(); // scrolls file name if longer than display line - if (c == KEY_HOME) + if (c == KEY_HOME || c == KEY_TAB) { filter_typing_timer = 0; ScanDirectory(selPath, SCANF_INIT, fs_pFileExt, fs_Options); menustate = MENU_FILE_SELECT1; + select = (c == KEY_TAB && flist_SelectedItem()->de.d_type == DT_DIR && !strcmp(flist_SelectedItem()->de.d_name, "..")); } if (c == KEY_END)