diff --git a/crereader.lua b/crereader.lua index 65c3f9f00..6978999b7 100644 --- a/crereader.lua +++ b/crereader.lua @@ -183,9 +183,9 @@ function CREReader:goto(pos, is_ignore_jump, pos_type) self.doc:drawCurrentPage(self.nulldc, fb.bb) Debug("## self.show_overlap "..self.show_overlap) - if self.show_overlap < 0 then + if self.show_overlap < 0 and self.dim_overlap then fb.bb:dimRect(0,0, width, -self.show_overlap) - elseif self.show_overlap > 0 then + elseif self.show_overlap > 0 and self.dim_overlap then fb.bb:dimRect(0,height - self.show_overlap, width, self.show_overlap) end self.show_overlap = 0 diff --git a/unireader.lua b/unireader.lua index 83c959800..f6fb56f7b 100644 --- a/unireader.lua +++ b/unireader.lua @@ -66,6 +66,7 @@ UniReader = { pan_margin = 5, -- horizontal margin for two-column zoom (in pixels) pan_overlap_vertical = 30, show_overlap = 0, + dim_overlap = true, -- if set to false, don't dim the overlap area -- the document: doc = nil, @@ -985,6 +986,7 @@ function UniReader:loadSettings(filename) end self.rcountmax = self.settings:readSetting("rcountmax") or self.rcountmax + self.dim_overlap = self.settings:readSetting("dim_overlap") -- other parameters are reader-specific --> @TODO: move to proper place, like loadSpecialSettings() -- since DJVUReader still has no loadSpecialSettings(), just a quick solution is @@ -1395,9 +1397,9 @@ function UniReader:show(no) fb.bb:blitFrom(bb, self.dest_x, self.dest_y, offset_x, offset_y, width, height) Debug("self.show_overlap", self.show_overlap) - if self.show_overlap < 0 then + if self.show_overlap < 0 and self.dim_overlap then fb.bb:dimRect(0,0, width, self.dest_y - self.show_overlap) - elseif self.show_overlap > 0 then + elseif self.show_overlap > 0 and self.dim_overlap then fb.bb:dimRect(0,self.dest_y + height - self.show_overlap, width, self.show_overlap) end self.show_overlap = 0 @@ -2510,6 +2512,19 @@ function UniReader:addAllCommands() end end) + self.commands:add(KEY_O, nil, "O", + "toggle showing page overlap areas", + function(unireader) + unireader.dim_overlap = not unireader.dim_overlap + if unireader.dim_overlap then + InfoMessage:inform("Turning overlap ON", nil, 1, MSG_AUX) + else + InfoMessage:inform("Turning overlap OFF", nil, 1, MSG_AUX) + end + self.settings:saveSetting("dim_overlap", unireader.dim_overlap) + self:redrawCurrentPage() + end) + self.commands:add(KEY_R, MOD_SHIFT, "R", "set full screen refresh count", function(unireader)