diff --git a/screen_ui.cpp b/screen_ui.cpp index 007fab6f7..bc7358976 100644 --- a/screen_ui.cpp +++ b/screen_ui.cpp @@ -840,6 +840,18 @@ void ScreenRecoveryUI::ShowFile(const char* filename) { text_top_ = old_text_top; } +void ScreenRecoveryUI::SetSysbarState(int state) +{ + if (HasBackKey()) { + state &= ~SYSBAR_BACK; + } + if (HasHomeKey()) { + state &= ~SYSBAR_HOME; + } + sysbar_state = state; + Redraw(); +} + void ScreenRecoveryUI::StartMenu(const char* const * headers, const char* const * items, int initial_selection) { pthread_mutex_lock(&updateMutex); diff --git a/screen_ui.h b/screen_ui.h index 323633cdf..c9df703ab 100644 --- a/screen_ui.h +++ b/screen_ui.h @@ -59,7 +59,7 @@ class ScreenRecoveryUI : public RecoveryUI { // sysbar int GetSysbarHeight() { return gr_get_height(sysbarBackHighlightIcon); } int GetSysbarState() { return sysbar_state; } - void SetSysbarState(int state) { sysbar_state = state; Redraw(); } + void SetSysbarState(int state); // menu display virtual int MenuItemStart() const { return menu_item_start_; } diff --git a/ui.cpp b/ui.cpp index 344934c22..cd8e75b95 100644 --- a/ui.cpp +++ b/ui.cpp @@ -514,12 +514,12 @@ void RecoveryUI::handle_release(input_device* dev) { int sysbar_state = GetSysbarState(); SetSysbarState(0); - if (sysbar_state == 0x01) { + if (sysbar_state == SYSBAR_BACK) { ProcessKey(dev, KEY_BACK, 1); ProcessKey(dev, KEY_BACK, 0); return; } - if (sysbar_state == 0x02) { + if (sysbar_state == SYSBAR_HOME) { ProcessKey(dev, KEY_HOME, 1); ProcessKey(dev, KEY_HOME, 0); return;