Font zooming more than 1 (#2989)

pull/2996/head
Robert 7 years ago committed by Frans de Jonge
parent a4d5165f7a
commit b446be74d5

@ -19,6 +19,8 @@ local ReaderFont = InputContainer:new{
face_table = nil,
-- default gamma from crengine's lvfntman.cpp
gamma_index = nil,
steps = {0,1,1,1,1,1,2,2,2,3,3,3,4,4,5},
gestureScale = Screen:getWidth() * FRONTLIGHT_SENSITIVITY_DECREASE,
}
function ReaderFont:init()
@ -78,7 +80,7 @@ function ReaderFont:setupTouchZones()
screen_zone = {
ratio_x = 0, ratio_y = 0, ratio_w = 1, ratio_h = 1,
},
handler = function() return self:onSpread() end
handler = function(ges) return self:onAdjustSpread(ges) end
},
{
id = "id_pinch",
@ -86,7 +88,7 @@ function ReaderFont:setupTouchZones()
screen_zone = {
ratio_x = 0, ratio_y = 0, ratio_w = 1, ratio_h = 1,
},
handler = function() return self:onPinch() end
handler = function(ges) return self:onAdjustPinch(ges) end
},
})
end
@ -160,9 +162,13 @@ end
--[[
UpdatePos event is used to tell ReaderRolling to update pos.
--]]
function ReaderFont:onChangeSize(direction)
function ReaderFont:onChangeSize(direction, font_delta)
local delta = direction == "decrease" and -1 or 1
self.font_size = self.font_size + delta
if font_delta then
self.font_size = self.font_size + font_delta * delta
else
self.font_size = self.font_size + delta
end
self.ui:handleEvent(Event:new("SetFontSize", self.font_size))
return true
end
@ -258,20 +264,24 @@ function ReaderFont:addToMainMenu(menu_items)
}
end
function ReaderFont:onPinch()
local info = Notification:new{text = _("Decreasing font size…")}
function ReaderFont:onAdjustSpread(ges)
local step = math.ceil(2 * #self.steps * ges.distance / self.gestureScale)
local delta_int = self.steps[step] or self.steps[#self.steps]
local info = Notification:new{text = _("Increasing font size…")}
UIManager:show(info)
UIManager:forceRePaint()
self:onChangeSize("decrease")
self:onChangeSize("increase", delta_int)
UIManager:close(info)
return true
end
function ReaderFont:onSpread()
local info = Notification:new{text = _("Increasing font size…")}
function ReaderFont:onAdjustPinch(ges)
local step = math.ceil(2 * #self.steps * ges.distance / self.gestureScale)
local delta_int = self.steps[step] or self.steps[#self.steps]
local info = Notification:new{text = _("Decreasing font size…")}
UIManager:show(info)
UIManager:forceRePaint()
self:onChangeSize("increase")
self:onChangeSize("decrease", delta_int)
UIManager:close(info)
return true
end

Loading…
Cancel
Save