transflective LCDs: fix "first buttonpress enables backlight only"
This should be done even if the backlight is set to "always off",
i.e. if the LCD is sleeping, a button press should be "eaten"
and just wake up the LCD.
Change-Id: I3946bdbbdc81f23eae3f47423123cefa275e0afc
diff --git a/firmware/drivers/button.c b/firmware/drivers/button.c
index 608fe7e..9677580 100644
--- a/firmware/drivers/button.c
+++ b/firmware/drivers/button.c
@@ -41,6 +41,9 @@
#ifdef HAVE_REMOTE_LCD
#include "lcd-remote.h"
#endif
+#if defined(HAVE_TRANSFLECTIVE_LCD) && defined(HAVE_LCD_SLEEP)
+#include "lcd.h" /* lcd_active() prototype */
+#endif
struct event_queue button_queue SHAREDBSS_ATTR;
@@ -354,7 +357,12 @@
}
else
#endif
- if (!filter_first_keypress || is_backlight_on(false)
+ if (!filter_first_keypress
+#if defined(HAVE_TRANSFLECTIVE_LCD) && defined(HAVE_LCD_SLEEP)
+ || (is_backlight_on(false) && lcd_active())
+#else
+ || is_backlight_on(false)
+#endif
#if BUTTON_REMOTE
|| (btn & BUTTON_REMOTE)
#endif