mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
[UX] Make the reader bottom menu compatible with key navigation (#3785)
* [toggleswitch] Add support for key navigation to this widget Add the onFocus an onUnfocus event handler add a new function that just circle the switch if not touch event is detected * Add key navigation to the readermenu The shortcut is still Alt-gr on sdl, to be defined on Kindle * Remove the old method of handling the Press key. Now the event is handled by the main widget who implement focusmanager and then dispatched to the currently focused item. Modify the fine font tuning only for non touch-devices See : https://github.com/koreader/koreader/pull/3785#issuecomment-375306466
This commit is contained in:
committed by
Frans de Jonge
parent
7e6de30889
commit
dfd87447da
@@ -1,5 +1,6 @@
|
||||
local Device = require("device")
|
||||
local DocumentRegistry = require("document/documentregistry")
|
||||
local Event = require("ui/event")
|
||||
local FileManagerBookInfo = require("apps/filemanager/filemanagerbookinfo")
|
||||
local ImageViewer = require("ui/widget/imageviewer")
|
||||
local Menu = require("ui/widget/menu")
|
||||
@@ -93,7 +94,7 @@ function CoverMenu:updateItems(select_number)
|
||||
-- reset focus manager accordingly
|
||||
self.selected = { x = 1, y = select_number }
|
||||
-- set focus to requested menu item
|
||||
self.item_group[select_number]:onFocus()
|
||||
self:getFocusItem():handleEvent(Event:new("Focus"))
|
||||
-- This will not work with our MosaicMenu, as a MosaicMenuItem is
|
||||
-- not a direct child of item_group (which contains VerticalSpans
|
||||
-- and HorizontalGroup...)
|
||||
|
||||
@@ -146,11 +146,6 @@ function ListMenuItem:init()
|
||||
},
|
||||
}
|
||||
end
|
||||
if Device:hasKeys() then
|
||||
self.active_key_events = {
|
||||
Select = { {"Press"}, doc = "chose selected item" },
|
||||
}
|
||||
end
|
||||
|
||||
-- We now build the minimal widget container that won't change after udpate()
|
||||
|
||||
@@ -654,13 +649,11 @@ end
|
||||
-- As done in MenuItem
|
||||
function ListMenuItem:onFocus()
|
||||
self._underline_container.color = Blitbuffer.COLOR_BLACK
|
||||
self.key_events = self.active_key_events
|
||||
return true
|
||||
end
|
||||
|
||||
function ListMenuItem:onUnfocus()
|
||||
self._underline_container.color = Blitbuffer.COLOR_WHITE
|
||||
self.key_events = {}
|
||||
return true
|
||||
end
|
||||
|
||||
|
||||
@@ -334,11 +334,6 @@ function MosaicMenuItem:init()
|
||||
},
|
||||
}
|
||||
end
|
||||
if Device:hasKeys() then
|
||||
self.active_key_events = {
|
||||
Select = { {"Press"}, doc = "chose selected item" },
|
||||
}
|
||||
end
|
||||
|
||||
-- We now build the minimal widget container that won't change after udpate()
|
||||
|
||||
@@ -642,13 +637,11 @@ end
|
||||
-- As done in MenuItem
|
||||
function MosaicMenuItem:onFocus()
|
||||
self._underline_container.color = Blitbuffer.COLOR_BLACK
|
||||
self.key_events = self.active_key_events
|
||||
return true
|
||||
end
|
||||
|
||||
function MosaicMenuItem:onUnfocus()
|
||||
self._underline_container.color = Blitbuffer.COLOR_WHITE
|
||||
self.key_events = {}
|
||||
return true
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user