mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
InputContainer/FocusManager: Simplify key_events clearing on unplug
Thanks to @poire-z for the idea, it's indeed much nicer this way ;).
This commit is contained in:
@@ -52,7 +52,7 @@ function ReaderHighlight:init()
|
||||
self._previous_indicator_pos = nil
|
||||
self._last_indicator_move_args = {dx = 0, dy = 0, distance = 0, time = time:now()}
|
||||
|
||||
self:registerKeyEvents(true)
|
||||
self:registerKeyEvents()
|
||||
|
||||
self._highlight_buttons = {
|
||||
-- highlight and add_note are for the document itself,
|
||||
@@ -220,41 +220,28 @@ end
|
||||
|
||||
function ReaderHighlight:onGesture() end
|
||||
|
||||
function ReaderHighlight:registerKeyEvents(init)
|
||||
if Device:hasDPad() then
|
||||
function ReaderHighlight:registerKeyEvents()
|
||||
if Device:hasKeys() then
|
||||
-- Used for text selection with dpad/keys
|
||||
local QUICK_INDICATOR_MOVE = true
|
||||
self.key_events.StopHighlightIndicator = { { Device.input.group.Back }, args = true } -- true: clear highlight selection
|
||||
self.key_events.UpHighlightIndicator = { { "Up" }, event = "MoveHighlightIndicator", args = {0, -1} }
|
||||
self.key_events.DownHighlightIndicator = { { "Down" }, event = "MoveHighlightIndicator", args = {0, 1} }
|
||||
-- let FewKeys device can move indicator left
|
||||
self.key_events.LeftHighlightIndicator = { { "Left" }, event = "MoveHighlightIndicator", args = {-1, 0} }
|
||||
self.key_events.RightHighlightIndicator = { { "Right" }, event = "MoveHighlightIndicator", args = {1, 0} }
|
||||
self.key_events.HighlightPress = { { "Press" } }
|
||||
if Device:hasKeys() then
|
||||
self.key_events.QuickUpHighlightIndicator = { { "Shift", "Up" }, event = "MoveHighlightIndicator", args = {0, -1, QUICK_INDICATOR_MOVE} }
|
||||
self.key_events.QuickDownHighlightIndicator = { { "Shift", "Down" }, event = "MoveHighlightIndicator", args = {0, 1, QUICK_INDICATOR_MOVE} }
|
||||
self.key_events.QuickLeftHighlightIndicator = { { "Shift", "Left" }, event = "MoveHighlightIndicator", args = {-1, 0, QUICK_INDICATOR_MOVE} }
|
||||
self.key_events.QuickRightHighlightIndicator = { { "Shift", "Right" }, event = "MoveHighlightIndicator", args = {1, 0, QUICK_INDICATOR_MOVE} }
|
||||
self.key_events.StartHighlightIndicator = { { "H" } }
|
||||
self.key_events.QuickUpHighlightIndicator = { { "Shift", "Up" }, event = "MoveHighlightIndicator", args = {0, -1, QUICK_INDICATOR_MOVE} }
|
||||
self.key_events.QuickDownHighlightIndicator = { { "Shift", "Down" }, event = "MoveHighlightIndicator", args = {0, 1, QUICK_INDICATOR_MOVE} }
|
||||
self.key_events.QuickLeftHighlightIndicator = { { "Shift", "Left" }, event = "MoveHighlightIndicator", args = {-1, 0, QUICK_INDICATOR_MOVE} }
|
||||
self.key_events.QuickRightHighlightIndicator = { { "Shift", "Right" }, event = "MoveHighlightIndicator", args = {1, 0, QUICK_INDICATOR_MOVE} }
|
||||
self.key_events.StartHighlightIndicator = { { "H" } }
|
||||
if Device:hasDPad() then
|
||||
self.key_events.StopHighlightIndicator = { { Device.input.group.Back }, args = true } -- true: clear highlight selection
|
||||
self.key_events.UpHighlightIndicator = { { "Up" }, event = "MoveHighlightIndicator", args = {0, -1} }
|
||||
self.key_events.DownHighlightIndicator = { { "Down" }, event = "MoveHighlightIndicator", args = {0, 1} }
|
||||
-- let hasFewKeys device move the indicator left
|
||||
self.key_events.LeftHighlightIndicator = { { "Left" }, event = "MoveHighlightIndicator", args = {-1, 0} }
|
||||
self.key_events.RightHighlightIndicator = { { "Right" }, event = "MoveHighlightIndicator", args = {1, 0} }
|
||||
self.key_events.HighlightPress = { { "Press" } }
|
||||
end
|
||||
elseif not init then
|
||||
self.key_events.StopHighlightIndicator = nil
|
||||
self.key_events.UpHighlightIndicator = nil
|
||||
self.key_events.DownHighlightIndicator = nil
|
||||
self.key_events.LeftHighlightIndicator = nil
|
||||
self.key_events.RightHighlightIndicator = nil
|
||||
self.key_events.HighlightPress = nil
|
||||
self.key_events.QuickUpHighlightIndicator = nil
|
||||
self.key_events.QuickDownHighlightIndicator = nil
|
||||
self.key_events.QuickLeftHighlightIndicator = nil
|
||||
self.key_events.QuickRightHighlightIndicator = nil
|
||||
self.key_events.StartHighlightIndicator = nil
|
||||
end
|
||||
end
|
||||
|
||||
ReaderHighlight.onPhysicalKeyboardConnected = ReaderHighlight.registerKeyEvents
|
||||
ReaderHighlight.onPhysicalKeyboardDisconnected = ReaderHighlight.registerKeyEvents
|
||||
|
||||
function ReaderHighlight:setupTouchZones()
|
||||
if not Device:isTouchDevice() then return end
|
||||
|
||||
Reference in New Issue
Block a user