ReaderUI: Refresh key_events handlers on keyboard hotplug

This commit is contained in:
NiLuJe
2022-11-01 00:17:25 +01:00
parent e0bfebb0b5
commit 09498d4bbb
15 changed files with 288 additions and 113 deletions

View File

@@ -20,9 +20,7 @@ local ReaderBack = EventListener:extend{
}
function ReaderBack:init()
if Device:hasKeys() then
self.ui.key_events.Back = { { Device.input.group.Back } }
end
self:registerKeyEvents(true)
-- Regular function wrapping our method, to avoid re-creating
-- an anonymous function at each page turn
self._addPreviousLocationToStackCallback = function()
@@ -30,6 +28,17 @@ function ReaderBack:init()
end
end
function ReaderBack:registerKeyEvents(init)
if Device:hasKeys() then
self.ui.key_events.Back = { { Device.input.group.Back } }
elseif not init then
self.ui.key_events.Back = nil
end
end
ReaderBack.onPhysicalKeyboardConnected = ReaderBack.registerKeyEvents
ReaderBack.onPhysicalKeyboardDisconnected = ReaderBack.registerKeyEvents
function ReaderBack:_getCurrentLocation()
if self.ui.document.info.has_pages then
return self.ui.paging:getBookLocation()