From 26ec45a659b2fee4a6bd0daeba48379b1e8c7fc5 Mon Sep 17 00:00:00 2001 From: Rhys Weatherley Date: Sun, 20 May 2012 13:32:00 +1000 Subject: [PATCH] Bug fix for BacklightOnSelect --- libraries/FreetronicsLCD/FreetronicsLCD.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/libraries/FreetronicsLCD/FreetronicsLCD.cpp b/libraries/FreetronicsLCD/FreetronicsLCD.cpp index 80f7d89d..0aa43467 100644 --- a/libraries/FreetronicsLCD/FreetronicsLCD.cpp +++ b/libraries/FreetronicsLCD/FreetronicsLCD.cpp @@ -321,11 +321,22 @@ int FreetronicsLCD::getButton() prevButton = button; if (screenSaved) { // Button pressed when screen saver active. - display(); - if (mode == DisplayOff) { + if (mode == BacklightOnSelect) { + // Turn on the back light only if Select was pressed. + if (button == LCD_BUTTON_SELECT) { + digitalWrite(LCD_BACK_LIGHT, HIGH); + screenSaved = false; + } + } else if (mode == DisplayOff) { + display(); eatRelease = true; return LCD_BUTTON_NONE; + } else { + display(); } + } else if (mode == BacklightOnSelect && button != LCD_BUTTON_SELECT) { + eatRelease = false; + return button; } eatRelease = false; lastRestore = currentTime;