diff --git a/frontend/device/input.lua b/frontend/device/input.lua index 9660280d8..0137dbcc6 100644 --- a/frontend/device/input.lua +++ b/frontend/device/input.lua @@ -822,6 +822,15 @@ function Input:handlePowerManagementOnlyEv(ev) return keycode end + -- Treat page turn button like the latest kobo firmware when suspended + if G_reader_settings:isTrue("pageturn_power") then + if keycode == "RPgBack" or keycode == "LPgBack" + or keycode == "RPgFwd" or keycode == "LPgFwd" then + -- When suspended we pretend that the page turn button is a power button + return "PowerRelease" + end + end + if self.fake_event_set[keycode] then if self.fake_event_args[keycode] then table.insert(self.fake_event_args[keycode], ev.value) diff --git a/frontend/ui/elements/common_settings_menu_table.lua b/frontend/ui/elements/common_settings_menu_table.lua index 87b349b80..2a822b525 100644 --- a/frontend/ui/elements/common_settings_menu_table.lua +++ b/frontend/ui/elements/common_settings_menu_table.lua @@ -237,6 +237,18 @@ if Device:isKobo() then UIManager:askForRestart() end } + + if Device:hasKeys() and Device:isMTK() then + common_settings.pageturn_power = { + text = _("Wake up on page-turn button press"), + checked_func = function() + return G_reader_settings:isTrue("pageturn_power") + end, + callback = function() + G_reader_settings:flipNilOrFalse("pageturn_power") + end + } + end end if PowerD:hasHallSensor() then diff --git a/frontend/ui/elements/filemanager_menu_order.lua b/frontend/ui/elements/filemanager_menu_order.lua index e1fb11150..f9fc6056e 100644 --- a/frontend/ui/elements/filemanager_menu_order.lua +++ b/frontend/ui/elements/filemanager_menu_order.lua @@ -56,6 +56,7 @@ local order = { "autostandby", "autosuspend", "autoshutdown", + "pageturn_power", -- if Device:isKobo() and Device:hasKeys() "ignore_sleepcover", "ignore_open_sleepcover", "cover_events", diff --git a/frontend/ui/elements/reader_menu_order.lua b/frontend/ui/elements/reader_menu_order.lua index ba2e52ed2..34de753ee 100644 --- a/frontend/ui/elements/reader_menu_order.lua +++ b/frontend/ui/elements/reader_menu_order.lua @@ -104,6 +104,7 @@ local order = { "autostandby", "autosuspend", "autoshutdown", + "pageturn_power", -- if Device:isKobo() and Device:hasKeys() "ignore_sleepcover", "ignore_open_sleepcover", "cover_events",