diff --git a/source/menu/menu_main.cpp b/source/menu/menu_main.cpp index 78a1965b..c138c38f 100644 --- a/source/menu/menu_main.cpp +++ b/source/menu/menu_main.cpp @@ -178,6 +178,7 @@ int CMenu::main(void) bool dpad_mode = m_cfg.getBool("GENERAL", "dpad_mode", false); parental_homebrew = m_cfg.getBool("HOMEBREW", "parental", false); + u32 cv=m_current_view; m_reload = false; static u32 disc_check = 0; int done = 0; @@ -258,6 +259,7 @@ int CMenu::main(void) break; } m_btnMgr.noClick(true); + cv = m_current_view; if ((m_btnMgr.selected(m_mainBtnChannel) || m_btnMgr.selected(m_mainBtnUsb) || m_btnMgr.selected(m_mainBtnDML) || m_btnMgr.selected(m_mainBtnHomebrew)) && dpad_mode && (BTN_UP_PRESSED || BTN_DOWN_PRESSED || BTN_LEFT_PRESSED || BTN_RIGHT_PRESSED)) { if (BTN_UP_PRESSED) @@ -268,19 +270,22 @@ int CMenu::main(void) m_current_view = COVERFLOW_HOMEBREW; else if (BTN_RIGHT_PRESSED && show_channel) m_current_view = COVERFLOW_CHANNEL; - m_category = m_cat.getInt(_domainFromView(), "category", 0); - LoadView(); + if (cv != m_current_view) + { + m_category = m_cat.getInt(_domainFromView(), "category", 0); + LoadView(); + } } - if (!m_btnMgr.selected(m_mainBtnChannel) && !m_btnMgr.selected(m_mainBtnUsb) && !m_btnMgr.selected(m_mainBtnDML) && !m_btnMgr.selected(m_mainBtnHomebrew)) + if (cv == m_current_view && !m_btnMgr.selected(m_mainBtnChannel) && !m_btnMgr.selected(m_mainBtnUsb) && !m_btnMgr.selected(m_mainBtnDML) && !m_btnMgr.selected(m_mainBtnHomebrew)) { - if (!m_btnMgr.selected(m_mainBtnQuit) && !BTN_B_HELD && (BTN_UP_REPEAT || RIGHT_STICK_UP)) - m_cf.up(); - if (!m_btnMgr.selected(m_mainBtnQuit) && ((!BTN_B_HELD && (BTN_RIGHT_REPEAT || RIGHT_STICK_RIGHT)) || WROLL_RIGHT)) - m_cf.right(); - if (!m_btnMgr.selected(m_mainBtnQuit) && !BTN_B_HELD && (BTN_DOWN_REPEAT || RIGHT_STICK_DOWN)) - m_cf.down(); - if (!m_btnMgr.selected(m_mainBtnQuit) && ((!BTN_B_HELD && (BTN_LEFT_REPEAT || RIGHT_STICK_LEFT)) || WROLL_LEFT)) - m_cf.left(); + if (!m_btnMgr.selected(m_mainBtnQuit) && !BTN_B_HELD && (BTN_UP_REPEAT || RIGHT_STICK_UP)) + m_cf.up(); + if (!m_btnMgr.selected(m_mainBtnQuit) && ((!BTN_B_HELD && (BTN_RIGHT_REPEAT || RIGHT_STICK_RIGHT)) || WROLL_RIGHT)) + m_cf.right(); + if (!m_btnMgr.selected(m_mainBtnQuit) && !BTN_B_HELD && (BTN_DOWN_REPEAT || RIGHT_STICK_DOWN)) + m_cf.down(); + if (!m_btnMgr.selected(m_mainBtnQuit) && ((!BTN_B_HELD && (BTN_LEFT_REPEAT || RIGHT_STICK_LEFT)) || WROLL_LEFT)) + m_cf.left(); } m_btnMgr.noClick(false); //CF Layout select