From 94a6cbbf286cba4005ba805498943e5ade54dfd5 Mon Sep 17 00:00:00 2001 From: chrox Date: Sat, 9 Feb 2013 00:11:30 +0800 Subject: [PATCH] bugfix: restore original zoom mode after cropping --- frontend/ui/bbox.lua | 8 ++++---- frontend/ui/reader/readercropping.lua | 14 ++++++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/frontend/ui/bbox.lua b/frontend/ui/bbox.lua index 102ad2d9c..26e745108 100644 --- a/frontend/ui/bbox.lua +++ b/frontend/ui/bbox.lua @@ -45,10 +45,10 @@ function BBoxWidget:screen_to_page() local scale = self.crop.zoom local screen_offset = self.crop.screen_offset DEBUG("screen offset in screen_to_page", screen_offset) - bbox.x0 = self.screen_bbox.x0 / scale - screen_offset.x - bbox.y0 = self.screen_bbox.y0 / scale - screen_offset.y - bbox.x1 = self.screen_bbox.x1 / scale - screen_offset.x - bbox.y1 = self.screen_bbox.y1 / scale - screen_offset.y + bbox.x0 = (self.screen_bbox.x0 - screen_offset.x) / scale + bbox.y0 = (self.screen_bbox.y0 - screen_offset.y) / scale + bbox.x1 = (self.screen_bbox.x1 - screen_offset.x) / scale + bbox.y1 = (self.screen_bbox.y1 - screen_offset.y) / scale return bbox end diff --git a/frontend/ui/reader/readercropping.lua b/frontend/ui/reader/readercropping.lua index 2d0b694ba..57d50f9e3 100644 --- a/frontend/ui/reader/readercropping.lua +++ b/frontend/ui/reader/readercropping.lua @@ -7,7 +7,10 @@ function ReaderCropping:onPageCrop(mode) local orig_reflow_mode = self.document.configurable.text_wrap self.document.configurable.text_wrap = 0 self.ui:handleEvent(Event:new("CloseConfig")) + self.cropping_zoommode = true + self.cropping_offset = true self.ui:handleEvent(Event:new("SetZoomMode", "page")) + self.cropping_zoommode = false local ubbox = self.document:getPageBBox(self.current_page) --DEBUG("used page bbox", ubbox) self.crop_bbox = BBoxWidget:new{ @@ -34,12 +37,15 @@ function ReaderCropping:onZoomUpdate(zoom) end function ReaderCropping:onScreenOffsetUpdate(screen_offset) - --DEBUG("offset updated to", screen_offset) - self.screen_offset = screen_offset + if self.cropping_offset then + DEBUG("offset updated to", screen_offset) + self.screen_offset = screen_offset + self.cropping_offset = false + end end function ReaderCropping:onSetZoomMode(mode) - if self.orig_zoom_mode == nil then + if not self.cropping_zoommode then --DEBUG("backup zoom mode", mode) self.orig_zoom_mode = mode end @@ -48,7 +54,7 @@ end function ReaderCropping:onReadSettings(config) local bbox = config:readSetting("bbox") self.document.bbox = bbox - DEBUG("read document bbox", self.document.bbox) + --DEBUG("read document bbox", self.document.bbox) end function ReaderCropping:onCloseDocument()