mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
Full text search: when Go back, go back to initial page
Only add the initial page to the location stack - and not every search result's page - so we can easily go back to it.
This commit is contained in:
@@ -209,13 +209,15 @@ function ReaderLink:addCurrentLocationToStack()
|
||||
end
|
||||
|
||||
--- Goes to link.
|
||||
function ReaderLink:onGotoLink(link)
|
||||
function ReaderLink:onGotoLink(link, neglect_current_location)
|
||||
logger.dbg("onGotoLink:", link)
|
||||
if self.ui.document.info.has_pages then
|
||||
-- internal pdf links have a "page" attribute, while external ones have an "uri" attribute
|
||||
if link.page then -- Internal link
|
||||
logger.dbg("Internal link:", link)
|
||||
self:addCurrentLocationToStack()
|
||||
if not neglect_current_location then
|
||||
self:addCurrentLocationToStack()
|
||||
end
|
||||
self.ui:handleEvent(Event:new("GotoPage", link.page + 1))
|
||||
return true
|
||||
end
|
||||
@@ -229,7 +231,9 @@ function ReaderLink:onGotoLink(link)
|
||||
-- which accepts both of the above legitimate xpointer as input.
|
||||
if self.ui.document:isXPointerInDocument(link) then
|
||||
logger.dbg("Internal link:", link)
|
||||
self:addCurrentLocationToStack()
|
||||
if not neglect_current_location then
|
||||
self:addCurrentLocationToStack()
|
||||
end
|
||||
self.ui:handleEvent(Event:new("GotoXPointer", link))
|
||||
return true
|
||||
end
|
||||
|
||||
@@ -28,16 +28,19 @@ function ReaderSearch:addToMainMenu(menu_items)
|
||||
end
|
||||
|
||||
function ReaderSearch:onShowSearchDialog(text)
|
||||
local neglect_current_location = false
|
||||
local do_search = function(search_func, _text, param)
|
||||
return function()
|
||||
local res = search_func(self, _text, param)
|
||||
if res then
|
||||
if self.ui.document.info.has_pages then
|
||||
self.ui.link:onGotoLink({page = res.page - 1})
|
||||
self.ui.link:onGotoLink({page = res.page - 1}, neglect_current_location)
|
||||
self.view.highlight.temp[res.page] = res
|
||||
else
|
||||
self.ui.link:onGotoLink(res[1].start)
|
||||
self.ui.link:onGotoLink(res[1].start, neglect_current_location)
|
||||
end
|
||||
-- Don't add result pages to location ("Go back") stack
|
||||
neglect_current_location = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user