From afde0983df2248be32092e3872aa65181f5fc3c2 Mon Sep 17 00:00:00 2001 From: Ethan Yonker Date: Sat, 23 Jan 2016 08:55:35 -0600 Subject: Update mStartPage to make language selection work on other pages We should offer language selection on any start page such as decrypt or system read only. However, if the mStartPage variable was not being updated properly so selecting a different language was dumping the user back on either the decrypt prompt or the system read only page. This patch set fixes the problem and places the user back on the proper page when they choose a new language. Change-Id: I5153d3b9525d8c93d3863f4b17ecf55b5209e3c7 --- gui/gui.cpp | 6 ++++-- gui/pages.cpp | 4 ++++ gui/pages.hpp | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) (limited to 'gui') diff --git a/gui/gui.cpp b/gui/gui.cpp index 08178fc17..d99764aea 100644 --- a/gui/gui.cpp +++ b/gui/gui.cpp @@ -613,8 +613,10 @@ static int runPages(const char *page_name, const int stop_on_page_done) DataManager::SetValue("tw_page_done", 0); DataManager::SetValue("tw_gui_done", 0); - if (page_name) + if (page_name) { + PageManager::SetStartPage(page_name); gui_changePage(page_name); + } // Raise the curtain if (gCurtain != NULL) @@ -945,7 +947,7 @@ error: extern "C" int gui_start(void) { - return gui_startPage(NULL, 1, 0); + return gui_startPage("main", 1, 0); } extern "C" int gui_startPage(const char *page_name, const int allow_commands, int stop_on_page_done) diff --git a/gui/pages.cpp b/gui/pages.cpp index ddf53a92c..def262998 100644 --- a/gui/pages.cpp +++ b/gui/pages.cpp @@ -1565,6 +1565,10 @@ void PageManager::RequestReload() { mReloadTheme = true; } +void PageManager::SetStartPage(const std::string& page_name) { + mStartPage = page_name; +} + int PageManager::ChangePage(std::string name) { DataManager::SetValue("tw_operation_state", 0); diff --git a/gui/pages.hpp b/gui/pages.hpp index b2f25801f..bb521c1d2 100644 --- a/gui/pages.hpp +++ b/gui/pages.hpp @@ -140,6 +140,7 @@ public: static void ReleasePackage(std::string name); static int RunReload(); static void RequestReload(); + static void SetStartPage(const std::string& page_name); // Used for actions and pages static int ChangePage(std::string name); -- cgit v1.2.3