Swipe down or tap on top left/right to access left/right reader menu tab directly (#3595)

pull/3605/head
Mahmoud Nagy 6 years ago committed by poire-z
parent cffe95b54a
commit 6e303e7372

@ -262,11 +262,15 @@ function ReaderMenu:exitOrRestart(callback)
end
end
function ReaderMenu:onShowReaderMenu()
function ReaderMenu:onShowReaderMenu(tab_index)
if self.tab_item_table == nil then
self:setUpdateItemTable()
end
if not tab_index then
tab_index = self.last_tab_index
end
local menu_container = CenterContainer:new{
ignore = "height",
dimen = Screen:getSize(),
@ -277,7 +281,7 @@ function ReaderMenu:onShowReaderMenu()
local TouchMenu = require("ui/widget/touchmenu")
main_menu = TouchMenu:new{
width = Screen:getWidth(),
last_index = self.last_tab_index,
last_index = tab_index,
tab_item_table = self.tab_item_table,
show_parent = menu_container,
}
@ -303,7 +307,6 @@ function ReaderMenu:onShowReaderMenu()
-- maintain a reference to menu_container
self.menu_container = menu_container
UIManager:show(menu_container)
return true
end
@ -314,22 +317,38 @@ function ReaderMenu:onCloseReaderMenu()
return true
end
function ReaderMenu:_getTabIndexFromLocation(ges)
if self.tab_item_table == nil then
self:setUpdateItemTable()
end
-- if the start position is far right
if ges.pos.x > 2 * Screen:getWidth() / 3 then
return #self.tab_item_table
-- if the start position is far left
elseif ges.pos.x < Screen:getWidth() / 3 then
return 1
-- if center return the last index
else
return self.last_tab_index
end
end
function ReaderMenu:onSwipeShowMenu(ges)
if self.activation_menu ~= "tap" and ges.direction == "south" then
if G_reader_settings:nilOrTrue("show_bottom_menu") then
self.ui:handleEvent(Event:new("ShowConfigMenu"))
end
self.ui:handleEvent(Event:new("ShowReaderMenu"))
self.ui:handleEvent(Event:new("ShowReaderMenu", self:_getTabIndexFromLocation(ges)))
return true
end
end
function ReaderMenu:onTapShowMenu()
function ReaderMenu:onTapShowMenu(ges)
if self.activation_menu ~= "swipe" then
if G_reader_settings:nilOrTrue("show_bottom_menu") then
self.ui:handleEvent(Event:new("ShowConfigMenu"))
end
self.ui:handleEvent(Event:new("ShowReaderMenu"))
self.ui:handleEvent(Event:new("ShowReaderMenu", self:_getTabIndexFromLocation(ges)))
return true
end
end

Loading…
Cancel
Save