Otherwise the VmData size will keep increasing in multi-threads mode.
Although the increasing VmData size doesn't mean there is enormous
memory leak, it does show that the thread stack is not handled properly
when threads exit.
Because the lua reader is single threaded on which both user inputloop
and background page rendering is processed. Although there is a pretty
good precache system to save user's time spending on waiting for the
rendering when going to the next page, user input is indeed blocked when
running the precache thing. The situation is even worse in koptreader as
reflowing on page would usually take several second, in this period
users cannot move to the next page view even it's already in the cache.
This patch will let precache run in the background in a seperate thread
so that the koptreader is still responsive when precaching the next
page. Now it only just works. Welcome to find out bugs in it.
Many users complained that the reflowing process is too slow. This is
rather a speed-quality dilemma. Trade-off can be made by decreasing the
dpi of source page. And by default quality is prefered.
By default the indentaion detection is enabled in K2pdfopt. This will
sometimes generate very poor reflowed page when there are sidenotes on
the page which would be treated as indentation. Disabling indentaion
detection will rescue the reflowed page from this situation.
For now only line spaceing and word spaceing are configurable with
'F'/'Aa' commands. And device size are passed to k2pdfopt in place of
the hard-coded default width and height(via @dpavlin).
Conflicts:
koptreader.lua
The printf() about the number of links on a page is very useful, but
only for debugging. As other instances of debugging printf() in djvu.c
and pdf.c are commented out, it seemed consistent to do the same with
this one.
This is rough first draft, and provides just dump of all links
available on pdf page. Binding to Shift+L is temporary and just for
debugging!
Conflicts:
pdfreader.lua
unireader.lua
1. Make "-d" switch passed to reader.lua enable all debugging
2. Enable debugging for now (development stage) to preserve the current
behaviour. But for the production release I advise to: a) disable it by
not passing "-d" and b) redirect standard output (not just standard
error) of reader.lua to crash.log in kpdf.sh
3. Comment out debug printf()s in pdf.c
Conflicts:
reader.lua
* hwhw/master: (183 commits)
show infomessage on document open
use InfoMessage for empty TOC, jump history and highlights
copy resources dir on customupdate
add resource: info icon
display document open error message
added infomessage dialog implementation
bugfix, removed old test constant
Added widget abstraction framework
added interface to get blitbuffers from JPEG/PNG files
fix typo
added reading of pan_margin settings
fix full screen refresh command, close#99
add: sleep and usleep in util module
fix: add back KEY_FW{LEFT,RIGHT} commands to NumInputBox
reverted removal of last-doc shortcut, introduced framework restart
kill our own child process. not quite finished.
added line spacing setting for crereader
remove page:getPageText debug dump to improve performance on device
remove page:getPageText debug dump to improve performance on device
display crash.log on error
...
Conflicts:
ft.c
helppage.lua
inputbox.lua
rendertext.lua
rendertext_example.lua
unireader.lua
this will return data in the way that djvu.c does already.
hopefully, this will permit us to re-use the highlighting code
(and factor it out into unireader.lua)