From efa37c97ab29685feea14f0c0bc8b61a19d51f27 Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Fri, 21 Dec 2012 06:00:51 +0800 Subject: [PATCH] bug fix in readerfont After set font in ReaderFont:onReadSettings, we have to send UpdatePos event in order to set m_is_rendered(member of LVDocView) to true. Otherwise position inside document will be reset to 0 on first view render, this makes the first page of document is always displayed on document open. So far, I don't know why this call will alter the value of m_is_rendered. It just works... --- frontend/document/credocument.lua | 4 ++-- frontend/ui/reader/readerfont.lua | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/frontend/document/credocument.lua b/frontend/document/credocument.lua index f6d1b369b..c69cdf600 100644 --- a/frontend/document/credocument.lua +++ b/frontend/document/credocument.lua @@ -102,7 +102,7 @@ function CreDocument:getFontFace() end function CreDocument:setFontFace(new_font_face) - if new_font_face then + if new_font_face then self._document:setFontFace(new_font_face) end end @@ -112,7 +112,7 @@ function CreDocument:getFontSize() end function CreDocument:setFontSize(new_font_size) - if new_font_size then + if new_font_size then self._document:setFontSize(new_font_size) end end diff --git a/frontend/ui/reader/readerfont.lua b/frontend/ui/reader/readerfont.lua index 4c505fee6..4adc1c77a 100644 --- a/frontend/ui/reader/readerfont.lua +++ b/frontend/ui/reader/readerfont.lua @@ -60,6 +60,11 @@ function ReaderFont:onReadSettings(config) self.font_size = self.ui.document:getFontSize() end self.ui.document:setFontSize(self.font_size) + -- Dirty hack: we have to add folloing call in order to set + -- m_is_rendered(member of LVDocView) to true. Otherwise position inside + -- document will be reset to 0 on first view render. + -- So far, I don't know why this call will alter the value of m_is_rendered. + self.ui:handleEvent(Event:new("UpdatePos")) end function ReaderFont:onShowFontMenu()