diff -u b/firmware/drivers/button.c b/firmware/drivers/button.c --- b/firmware/drivers/button.c +++ b/firmware/drivers/button.c @@ -140,6 +140,7 @@ return ret; } +#ifdef HAVE_BACKLIGHT void backlight_on_by_button(int btn) { bool bl_on; @@ -147,6 +148,14 @@ { bl_on = (*backlight_on_keypress_oracle)(btn); DEBUGF("BL oracle (%d) returned: %d\n", btn, bl_on); + /* We just pressed a button - if the screen is on, + restart the timer to keep it on */ + if (!bl_on && is_backlight_on(false)) { + DEBUGF("timer: BL is on - restarting timeout\n"); + bl_on = true; + } else { + DEBUGF("timer: BL is off\n"); + } } else { @@ -156,11 +165,15 @@ if (bl_on) { backlight_on(); +#ifdef HAVE_REMOTE_LCD + remote_backlight_on(); +#endif #ifdef HAVE_BUTTON_LIGHT buttonlight_on(); #endif } } +#endif /* ifdef HAVE_BACKLIGHT */ static void button_tick(void) {