From b222900cb937c767d97587b7b2c36a16b1d330ae Mon Sep 17 00:00:00 2001 From: Frans de Jonge Date: Sat, 25 May 2024 21:11:38 +0200 Subject: [PATCH] Enable Alt+Shift+G for screenshots on all devices with a keyboard (#11888) --- frontend/ui/widget/screenshoter.lua | 37 ++++++++++++++++------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/frontend/ui/widget/screenshoter.lua b/frontend/ui/widget/screenshoter.lua index b4827a697..1c8ffc169 100644 --- a/frontend/ui/widget/screenshoter.lua +++ b/frontend/ui/widget/screenshoter.lua @@ -15,22 +15,9 @@ local Screenshoter = InputContainer:extend{ } function Screenshoter:init() - if not Device:isTouchDevice() then - if Device:hasKeyboard() then - self.key_events.KeyPressShoot = { - { "Alt", "Shift", "G" }, -- same as stock firmware - event = "KeyPressShoot", - } - elseif Device:hasFiveWay() then - -- kindle 4 case: same as stock firmware. - self.key_events.KeyPressShoot = { - { "ScreenKB", "Menu" }, - event = "KeyPressShoot", - } - -- unable to add other non-touch devices as simultaneous key presses won't work without modifiers - end - return - end + self:registerKeyEvents() + if not Device:isTouchDevice() then return end + local diagonal = math.sqrt(Screen:getWidth()^2 + Screen:getHeight()^2) self.ges_events = { TapDiagonal = { @@ -146,4 +133,22 @@ function Screenshoter:onSwipeDiagonal() return self:onScreenshot() end +function Screenshoter:registerKeyEvents() + if Device:hasKeyboard() then + self.key_events.KeyPressShoot = { + { "Alt", "Shift", "G" }, -- same as stock Kindle firmware + event = "KeyPressShoot", + } + elseif Device:hasFiveWay() then + -- kindle 4 case: same as stock firmware. + self.key_events.KeyPressShoot = { + { "ScreenKB", "Menu" }, + event = "KeyPressShoot", + } + -- unable to add other non-touch devices as simultaneous key presses won't work without modifiers + end +end + +Screenshoter.onPhysicalKeyboardConnected = Screenshoter.registerKeyEvents + return Screenshoter