mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
Support screenshots on Non-Touch with ScreenKB as modifier (#11802)
on devices (mostly kindles) with keyboards: Alt + Shift + G on kindle 4: ScreenKB + Menu
This commit is contained in:
@@ -139,7 +139,7 @@ local Input = {
|
||||
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
|
||||
"N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
|
||||
"Up", "Down", "Left", "Right", "Press", "Backspace", "End",
|
||||
"Back", "Sym", "AA", "Menu", "Home", "Del",
|
||||
"Back", "Sym", "AA", "Menu", "Home", "Del", "ScreenKB",
|
||||
"LPgBack", "RPgBack", "LPgFwd", "RPgFwd"
|
||||
},
|
||||
},
|
||||
@@ -171,6 +171,7 @@ local Input = {
|
||||
Shift = false,
|
||||
Sym = false,
|
||||
Meta = false,
|
||||
ScreenKB = false,
|
||||
},
|
||||
|
||||
-- repeat state:
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
local BD = require("ui/bidi")
|
||||
local ButtonDialog = require("ui/widget/buttondialog")
|
||||
local DataStorage = require("datastorage")
|
||||
local Device = require("device")
|
||||
local GestureRange = require("ui/gesturerange")
|
||||
local InputContainer = require("ui/widget/container/inputcontainer")
|
||||
local UIManager = require("ui/uimanager")
|
||||
@@ -14,6 +15,22 @@ 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
|
||||
local diagonal = math.sqrt(Screen:getWidth()^2 + Screen:getHeight()^2)
|
||||
self.ges_events = {
|
||||
TapDiagonal = {
|
||||
@@ -79,7 +96,7 @@ function Screenshoter:onScreenshot(screenshot_name, caller_callback)
|
||||
end,
|
||||
},
|
||||
{
|
||||
text = _("Set as screensaver"),
|
||||
text = _("Set as wallpaper"),
|
||||
callback = function()
|
||||
G_reader_settings:saveSetting("screensaver_type", "image_file")
|
||||
G_reader_settings:saveSetting("screensaver_image", screenshot_name)
|
||||
@@ -117,6 +134,10 @@ function Screenshoter:chooseFolder()
|
||||
filemanagerutil.showChooseDialog(title_header, caller_callback, current_path, default_path)
|
||||
end
|
||||
|
||||
function Screenshoter:onKeyPressShoot()
|
||||
return self:onScreenshot()
|
||||
end
|
||||
|
||||
function Screenshoter:onTapDiagonal()
|
||||
return self:onScreenshot()
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user