Age | Commit message (Collapse) | Author |
|
Fixes bug #695191 - Mupdf Build49/armv7a & Android 3.1: cycles
through subset of pages & page scrubber
The problem here was that in Honeycomb, various bitmap operations
(including drawing via JNI) do not update the bitmap generation count.
When hardware acceleration is enabled, this means that the underlying GL
layer is not aware that the bitmap has changed, and ends up reusing old
textures.
To workaround this, we erase the bitmap before drawing the page. Erase
appears to be the only operation I could find (after pouring through the
source), which actually increments the generation count. The other option
would have been to disable hardware acceleration, but that was far less ideal.
|
|
env/clazz pointers in globals.
The env/clazz pointers are stashed in the globals structure so that they can
be accessed by callback functions in mupdf.c (such as bufferStreamSeek()).
The intention is that only one thread (i.e. the AsyncTask background thread)
reads/writes these stashed pointers. Because cookies are created/destroyed
in the main thread, we add a new version of get_globals() which doesn't trample
these pointers.
|
|
to file and open from file works
Patch was supplied by gong_su@hotmail.com. Thanks!
|
|
then pressing back button again.
I've also added an onCancel() handler, so that the back button only needs
to be pressed once to return to the file picker view.
Spotted while looking at bug #693719 - Attached PDF file does not display (edit)
|
|
crash when rotating the device.
When cancelling a render async task, we now wait for it to actually finish
before continuing. The benefit of this is that we should be able to guarantee
that its Bitmap becomes eligible for GC before we continue to create any
new bitmaps.
This should hopefully help with the OOM errors seen when rotating
the device and trying to create the new bitmaps.
To prevent the UI thread from being blocked for too long while we're waiting
for the async task to finish, we use a fz_cookie and set the 'abort' flag to
request the render be stopped as soon as possible.
|
|
|
|
Android sometimes calls the 'getSelectedView()' method of an AdapterView.
This can be made to happen more predicatably by enabling the Talkback
accessibility feature.
Remove the UnsupportedOperationException and just return null, as we the
ReaderView does not have the concept of a selected page.
|
|
If an iOS app uses too much memory, the OS asks it to free up some space.
If it doesn't do so in a timely manner, it will get a second warning before
being killed by the OS.
In other platforms, where malloc() return NULL in OOM, the store scavenger
releases memory when mallocs fail. In iOS, mallocs usually never return NULL
because the app is killed before this can happen. Therefore, we need to
initiate a scavenge from the low memory notification instead.
We evict the store to 50% of its current size when a memory warning occurs
when it is in the foreground, and 0% when a memory warning occurs whilst
it is in the background. Having said this, I didn't manage to get a background
warning to occur, presumably because we don't request background execution
Therefore, I think in practice the OS just kills the process. However, this
will be useful if we ever add background execution.
|
|
renders a specific PDF
Some async tasks were still trying to access the globals pointer, which had
been nulled during shutdown, leading to a crash.
Check for NULL and return cleanly in this case.
Possibly we should also be calling AsyncTask.get() to wait for the tasks to
finish, before nulling the global pointer?
|
|
|
|
|
|
Replace the DroidSansFallback TTF files with a TTC that has two fonts:
The original and a copy where the OpenType 'vert' substitution
lookup has been pre-applied by copying the uniXXXX.vert glyph data
to uniXXXX.
|
|
|
|
|
|
|
|
|
|
Add a new function pdfapp_autozoom to fit the page to the window by comparing
the aspect ratios of the page and the window to choose whether to fit
horizontally or vertically.
|
|
Fix broken solution file and add project entries for new files.
|
|
This adds a custom memory management layer between libjpeg and the calling
app - in such a way that the code can be shared between mupdf and
Ghostscript/PDL.
|
|
Convert from UTF-8 to UCS-2 to display unicode text properly.
|
|
These files are maintained by debian. Now that debian updates the mupdf package
more regularly there is no need for us to keep our own debian packaging files.
https://packages.debian.org/unstable/main/mupdf
|
|
SC_MAXIMIZE is only sent when maximizing via the maximize button.
Dragging to the screen edge, double clicking the title bar or
WinKey+Up do not generate an SC_MAXIMIZE message.
Detect when gettincg a WM_SIZE message with SIZE_MAXIMIZE instead.
|
|
Use an explicit list of resolutions for +/- zoom stepping.
|
|
|
|
|
|
|
|
Previously, the overhead for the HTTP requests and responses
was too high, e.g. pdfref17.pdf would result in almost 8000
separate HTTP requests (but with this patch about 30.
|
|
Previously any warning displayed at the top of the page
would never disappear because the display timeout being
set would be overwritten by the later initialization.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Debian doesn't have libopenjp2 as a package (whereas gentoo does) so
I've removed it from the control file. You'll need to use the
thirdparty submodule for openjpeg2 until such a time as it exists.
|
|
Only add newlines between selected lines of text.
|
|
Previously errors from curl_easy_perform() were never checked. This
caused mupdf to enter an eternal loop, repeatedly trying to get data
to parse from the remote host.
|
|
ChoosePDFActivity can be used either to select PDF/XPS etc files,
or to select key files (for digital signatures). The choice of which
one to use is made according to the action string in the Intent with
which the activity is invoked.
Previously we would look for Intent.action.MAIN and take this to mean
"Look for PDF files", and anything else to mean look for key files.
Unfortunately, if you start the activity directly using adb then the
action string is null, so we look for key files.
The fix is to use a specific (custom) string for key files and for
everything else to be treated as a request for PDF files.
|
|
|
|
|
|
allows printing of file types other than PDF
|
|
|
|
NoExport (and ReadOnly) fields shouldn't mark the document for saving.
|
|
|
|
|
|
|
|
rotation
|
|
Attempt to open a file that needs a password, and you will get a
dialogue box. Hit cancel on this, and the program crashes.
This is due to an attempt to release the bitmaps on a document
view that does not exist. Simple fix.
|
|
The get_globals helper function only works on non-class objects.
Hence 'MuPDFCore_javascriptSupported' can't be a static function.
|