From 46c19ba8e99010737feb54611fb832ac15673657 Mon Sep 17 00:00:00 2001 From: Robert Date: Fri, 4 Aug 2017 14:01:06 +0200 Subject: [PATCH] Option to disable keyboard flashing (#3050) * Option to disable keyboard flashing --- .../elements/common_settings_menu_table.lua | 1 + frontend/ui/elements/flash_keyboard.lua | 12 +++++++ frontend/ui/widget/virtualkeyboard.lua | 35 +++++++++++++------ 3 files changed, 37 insertions(+), 11 deletions(-) create mode 100644 frontend/ui/elements/flash_keyboard.lua diff --git a/frontend/ui/elements/common_settings_menu_table.lua b/frontend/ui/elements/common_settings_menu_table.lua index b4e2fcfca..354149c59 100644 --- a/frontend/ui/elements/common_settings_menu_table.lua +++ b/frontend/ui/elements/common_settings_menu_table.lua @@ -38,6 +38,7 @@ common_settings.screen = { require("ui/elements/screen_eink_opt_menu_table"), require("ui/elements/screen_disable_double_tap_table"), require("ui/elements/refresh_menu_table"), + require("ui/elements/flash_keyboard"), }, } common_settings.save_document = { diff --git a/frontend/ui/elements/flash_keyboard.lua b/frontend/ui/elements/flash_keyboard.lua new file mode 100644 index 000000000..f4ce052ad --- /dev/null +++ b/frontend/ui/elements/flash_keyboard.lua @@ -0,0 +1,12 @@ +local _ = require("gettext") + +return { + text = _("Flash keyboard"), + checked_func = function() + return G_reader_settings:readSetting("flash_keyboard") ~= false + end, + callback = function() + local disabled = G_reader_settings:readSetting("flash_keyboard") ~= false + G_reader_settings:saveSetting("flash_keyboard", not disabled) + end, +} diff --git a/frontend/ui/widget/virtualkeyboard.lua b/frontend/ui/widget/virtualkeyboard.lua index 329f25a59..a0fc1e060 100644 --- a/frontend/ui/widget/virtualkeyboard.lua +++ b/frontend/ui/widget/virtualkeyboard.lua @@ -93,32 +93,45 @@ function VirtualKey:init() }, } end + self.flash_keyboard = G_reader_settings:readSetting("flash_keyboard") ~= false end function VirtualKey:update_keyboard() UIManager:setDirty(self.keyboard, function() logger.dbg("update key region", self[1].dimen) - return "ui", self[1].dimen + return "fast", self[1].dimen end) end function VirtualKey:onTapSelect() - self[1].invert = true - self:update_keyboard() - if self.callback then - self.callback() + if self.flash_keyboard then + self[1].invert = true + self:update_keyboard() + if self.callback then + self.callback() + end + UIManager:scheduleIn(0.1, function() self:invert(false) end) + else + if self.callback then + self.callback() + end end - UIManager:scheduleIn(0.1, function() self:invert(false) end) return true end function VirtualKey:onHoldSelect() - self[1].invert = true - self:update_keyboard() - if self.hold_callback then - self.hold_callback() + if self.flash_keyboard then + self[1].invert = true + self:update_keyboard() + if self.hold_callback then + self.hold_callback() + end + UIManager:scheduleIn(0.1, function() self:invert(false) end) + else + if self.hold_callback then + self.hold_callback() + end end - UIManager:scheduleIn(0.1, function() self:invert(false) end) return true end