[feat] Add Device:hasClipboard() (#3465)

References https://github.com/koreader/koreader/issues/3441
pull/3489/head
Frans de Jonge 7 years ago committed by GitHub
parent aa7d4f9751
commit 06dfe4fb78
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -383,8 +383,11 @@ function ReaderHighlight:onHoldRelease()
}, },
{ {
{ {
text = "-", text = "Copy",
enabled = false, enabled = Device:hasClipboard(),
callback = function()
Device.input.setClipboardText(self.selected_text.text)
end,
}, },
{ {
text = _("Translate"), text = _("Translate"),

@ -24,6 +24,7 @@ local Device = {
isTouchDevice = no, isTouchDevice = no,
hasFrontlight = no, hasFrontlight = no,
needsTouchScreenProbe = no, needsTouchScreenProbe = no,
hasClipboard = no,
hasColorScreen = no, hasColorScreen = no,
-- use these only as a last resort. We should abstract the functionality -- use these only as a last resort. We should abstract the functionality

@ -34,10 +34,22 @@ function Device:init()
end end
if util.haveSDL2() then if util.haveSDL2() then
self.hasClipboard = yes
self.screen = require("ffi/framebuffer_SDL2_0"):new{device = self, debug = logger.dbg} self.screen = require("ffi/framebuffer_SDL2_0"):new{device = self, debug = logger.dbg}
local input = require("ffi/input")
self.input = require("device/input"):new{ self.input = require("device/input"):new{
device = self, device = self,
event_map = require("device/sdl/event_map_sdl2"), event_map = require("device/sdl/event_map_sdl2"),
hasClipboardText = function()
return input.hasClipboardText()
end,
getClipboardText = function()
return input.getClipboardText()
end,
setClipboardText = function(text)
return input.setClipboardText(text)
end,
} }
else else
self.screen = require("ffi/framebuffer_SDL1_2"):new{device = self, debug = logger.dbg} self.screen = require("ffi/framebuffer_SDL1_2"):new{device = self, debug = logger.dbg}

Loading…
Cancel
Save