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)