From f370842a883e0b59a1b122f0e8c44c262b3d7421 Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Sun, 4 Mar 2012 19:47:17 +0800 Subject: [PATCH] mod: record self.globalzoom_orig to help zoom in/out see: https://github.com/hwhw/kindlepdfviewer/issues/24 --- djvureader.lua | 2 ++ pdfreader.lua | 4 ++++ unireader.lua | 9 +++++---- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/djvureader.lua b/djvureader.lua index 4ca820657..0e64c1081 100644 --- a/djvureader.lua +++ b/djvureader.lua @@ -46,7 +46,9 @@ function DJVUReader:setzoom(page) end dc:setZoom(self.globalzoom) + -- record globalzoom for manual zoom in/out self.globalzoom_orig = self.globalzoom + dc:setRotate(self.globalrotate); dc:setOffset(self.offset_x, self.offset_y) self.fullwidth, self.fullheight = page:getSize(dc) diff --git a/pdfreader.lua b/pdfreader.lua index 7712f1f8b..e965094e0 100644 --- a/pdfreader.lua +++ b/pdfreader.lua @@ -86,7 +86,11 @@ function PDFReader:setzoom(page) self.pan_y = self.offset_y self.pan_by_page = true end + dc:setZoom(self.globalzoom) + -- record globalzoom for manual zoom in/out + self.globalzoom_orig = self.globalzoom + dc:setRotate(self.globalrotate); dc:setOffset(self.offset_x, self.offset_y) self.fullwidth, self.fullheight = page:getSize(dc) diff --git a/unireader.lua b/unireader.lua index ec766c578..80ac95281 100644 --- a/unireader.lua +++ b/unireader.lua @@ -21,6 +21,7 @@ UniReader = { -- zoom state: globalzoom = 1.0, + globalzoom_orig = 1.0, globalzoommode = -1, -- ZOOM_FIT_TO_PAGE globalrotate = 0, @@ -295,9 +296,9 @@ function UniReader:inputloop() local secs, usecs = util.gettime() if ev.code == KEY_PGFWD or ev.code == KEY_LPGFWD then if Keys.shiftmode then - self:setglobalzoom(self.globalzoom+0.2) + self:setglobalzoom(self.globalzoom+self.globalzoom_orig*0.2) elseif Keys.altmode then - self:setglobalzoom(self.globalzoom+0.1) + self:setglobalzoom(self.globalzoom+self.globalzoom_orig*0.1) else if self.pan_by_page then self.offset_x = self.pan_x @@ -307,9 +308,9 @@ function UniReader:inputloop() end elseif ev.code == KEY_PGBCK or ev.code == KEY_LPGBCK then if Keys.shiftmode then - self:setglobalzoom(self.globalzoom-0.2) + self:setglobalzoom(self.globalzoom-self.globalzoom_orig*0.2) elseif Keys.altmode then - self:setglobalzoom(self.globalzoom-0.1) + self:setglobalzoom(self.globalzoom-self.globalzoom_orig*0.1) else if self.pan_by_page then self.offset_x = self.pan_x