From fef18ec73a7b6417bab49620397f5376f177c57f Mon Sep 17 00:00:00 2001 From: chrox Date: Fri, 2 Jun 2017 00:32:06 +0800 Subject: [PATCH] [fix] revert removing tap gestures to show menus as the tap gesture on the upper part (mostly) of the screen is a conventional design to show menus in almost all ereaders as well as some mobile phone apps. While users not farmilar with the Android world have no experience with swipe down to show menus that's why we need a quick start guide for this feature. And experienced Koreader users probably will turn pages by mistake each time they want to popup the menus. The solution here is adding back the tap gestures as they were and keep the new swipe to show menu feature as a supplementary function when link's tap area blocks menu's tap area. --- frontend/apps/filemanager/filemanagermenu.lua | 14 ++++++++++++++ frontend/apps/reader/modules/readermenu.lua | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/frontend/apps/filemanager/filemanagermenu.lua b/frontend/apps/filemanager/filemanagermenu.lua index f8bcbcc29..d221ba461 100644 --- a/frontend/apps/filemanager/filemanagermenu.lua +++ b/frontend/apps/filemanager/filemanagermenu.lua @@ -53,6 +53,15 @@ function FileManagerMenu:initGesListener() if not Device:isTouchDevice() then return end self:registerTouchZones({ + { + id = "filemanager_tap", + ges = "tap", + screen_zone = { + ratio_x = DTAP_ZONE_MENU.x, ratio_y = DTAP_ZONE_MENU.y, + ratio_w = DTAP_ZONE_MENU.w, ratio_h = DTAP_ZONE_MENU.h, + }, + handler = function(ges) return self:onTapShowMenu(ges) end, + }, { id = "filemanager_swipe", ges = "swipe", @@ -370,6 +379,11 @@ function FileManagerMenu:onCloseFileManagerMenu() return true end +function FileManagerMenu:onTapShowMenu(ges) + self:onShowMenu() + return true +end + function FileManagerMenu:onSwipeShowMenu(ges) if ges.direction == "south" then self:onShowMenu() diff --git a/frontend/apps/reader/modules/readermenu.lua b/frontend/apps/reader/modules/readermenu.lua index 88f8c8b6a..e9d3e75be 100644 --- a/frontend/apps/reader/modules/readermenu.lua +++ b/frontend/apps/reader/modules/readermenu.lua @@ -83,6 +83,15 @@ function ReaderMenu:onReaderReady() if not Device:isTouchDevice() then return end self.ui:registerTouchZones({ + { + id = "readermenu_tap", + ges = "tap", + screen_zone = { + ratio_x = DTAP_ZONE_MENU.x, ratio_y = DTAP_ZONE_MENU.y, + ratio_w = DTAP_ZONE_MENU.w, ratio_h = DTAP_ZONE_MENU.h, + }, + handler = function(ges) return self:onTapShowMenu(ges) end, + }, { id = "readermenu_swipe", ges = "swipe", @@ -285,6 +294,11 @@ function ReaderMenu:onSwipeShowMenu(ges) end end +function ReaderMenu:onTapShowMenu() + self.ui:handleEvent(Event:new("ShowConfigMenu")) + self.ui:handleEvent(Event:new("ShowReaderMenu")) +end + function ReaderMenu:onTapCloseMenu() self.ui:handleEvent(Event:new("CloseReaderMenu")) self.ui:handleEvent(Event:new("CloseConfigMenu"))