summaryrefslogtreecommitdiffstats
path: root/device.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'device.cpp')
-rw-r--r--device.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/device.cpp b/device.cpp
index 7f579cf..95608d6 100644
--- a/device.cpp
+++ b/device.cpp
@@ -139,6 +139,12 @@ Device::BuiltinAction Device::InvokeMenuItem(int menu_position) {
return entry->action.action;
}
+void Device::GoHome() {
+ while (menu_stack.size() > 1) {
+ menu_stack.pop();
+ }
+}
+
int Device::HandleMenuKey(int key, int visible) {
if (!visible) {
return kNoAction;
@@ -164,8 +170,6 @@ int Device::HandleMenuKey(int key, int visible) {
case KEY_ENTER:
case KEY_POWER:
case BTN_MOUSE:
- case KEY_HOME:
- case KEY_HOMEPAGE:
case KEY_SEND:
return kInvokeItem;
@@ -173,6 +177,10 @@ int Device::HandleMenuKey(int key, int visible) {
case KEY_BACK:
return kGoBack;
+ case KEY_HOME:
+ case KEY_HOMEPAGE:
+ return kGoHome;
+
default:
// If you have all of the above buttons, any other buttons
// are ignored. Otherwise, any button cycles the highlight.