Age | Commit message (Collapse) | Author |
|
Easier than duplicating getopt for wchar_t, since we already
have windows specific functions to convert wchar_t strings.
|
|
Previously, only the unix executable had been updated to take
command line flags; update the windows one in line with it.
We have to cope with the argv being in Unicode; add a windows
specific version of getoptw for this.
Also note that that fprintf's in the windows mupdf exe won't work
as GUI apps don't have a console window, and can't write to the
parent one. Fixing that is a larger project than I have time
for right now.
|
|
MuPDF only.
Call SetProcessDPIAware if it's available; this stops Windows
doing its own horrible scaling causing blurriness.
Also, interrogate the screen display to get the real dpi and use that
as our basis.
|
|
Only affects EPUB and HTML.
|
|
Add -U option to mupdf and mudraw to set a user stylesheet.
Uses a context to store user the stylesheet, just like the AA level.
|
|
If FZ_LARGEFILE is defined when building, MuPDF uses 64bit offsets
for files; this allows us to open streams larger than 2Gig.
The downsides to this are that:
* The xref entries are larger.
* All PDF ints are held as 64bit things rather than 32bit things
(to cope with /Prev entries, hint stream offsets etc).
* All file positions are stored as 64bits rather than 32.
The implementation works by detecting FZ_LARGEFILE. Some #ifdeffery
in fitz/system.h sets fz_off_t to either int or int64_t as appropriate,
and sets defines for fz_fopen, fz_fseek, fz_ftell etc as required.
These call the fseeko64 etc functions on linux (and so define
_LARGEFILE64_SOURCE) and the explicit 64bit functions on windows.
|
|
|
|
Add fz_has_permission function to fz_document.
Add fz_lookup_metadata function to fz_document.
Remove fz_meta function from fz_document.
|
|
Mousewheel events would 'capture' the mouse, and consequently all
keyboard events would be ignored until the next mouse button up.
Simple fix.
|
|
|
|
|
|
Use a placeholder document instead - just a big red 'X'.
Supposedly lots of people use MuPDF to view the output of their TeX
documents. Sometimes the compilation of the TeX document fails, and
reload results in MuPDF closing. This should allow their window to
stay open until they fix the problem and reload again.
|
|
On windows, handle mouse wheel events as mouse events rather than
keyboard ones. This means that Ctrl-wheel zooms as expected (consistent
with Chrome etc). Also ensure that Shift-wheel changes from vertical
to horizontal.
Mouse wheel over pages that are larger than fit in the window
now scroll around the page. Once they hit the edge of the window,
the page flips to the next/previous page as you would expect.
|
|
Update pdfapp_onkey to take modifiers. If shift is held down when
space is sent, then back up a page.
This involves updating the windows app to actually send modifiers.
Previously they were always sent as zero to the onmouse routine.
|
|
|
|
Adopt patch from Risto Saarelma. When in presentation mode, left
and right mouse buttons flip pages forward/back.
|
|
Adopt Guillume Duranceau's patch to set the NET_WM_NAME property for
window titles.
|
|
Adopt a small patch from ooesili@gmail.com to avoid zombie processes
that are left around after processes opened from PDF links are
terminated.
|
|
A few casts are required within the code, along with a few #ifdef
changes.
Some tweaks to curl are required too.
|
|
|
|
Purge several embedded contexts:
Remove embedded context in fz_output.
Remove embedded context in fz_stream.
Remove embedded context in fz_device.
Remove fz_rebind_stream (since it is no longer necessary).
Remove embedded context in svg_device.
Remove embedded context in XML parser.
Add ctx argument to fz_document functions.
Remove embedded context in fz_document.
Remove embedded context in pdf_document.
Remove embedded context in pdf_obj.
Make fz_page independent of fz_document in the interface.
We shouldn't need to pass the document to all functions handling a page.
If a page is tied to the source document, it's redundant; otherwise it's
just pointless.
Fix reference counting oddity in fz_new_image_from_pixmap.
|
|
Rename fz_close to fz_drop_stream.
Rename fz_close_archive to fz_drop_archive.
Rename fz_close_output to fz_drop_output.
Rename fz_free_* to fz_drop_*.
Rename pdf_free_* to pdf_drop_*.
Rename xps_free_* to xps_drop_*.
|
|
|
|
|
|
win32 supports tinting, but cannot change the color from the default.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
Convert from UTF-8 to UCS-2 to display unicode text properly.
|
|
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.
|
|
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.
|
|
NoExport (and ReadOnly) fields shouldn't mark the document for saving.
|
|
Split functions out of pdf-form.c that shouldn't be there, and make
javascript initialization explicit.
|
|
Currently fz_streams have a 4K buffer within their header. The call
to read from a stream fills this buffer, resulting in more data being
pulled from any underlying stream than we might like. This causes
problems with the forthcoming 'leech' filter.
Here we simplify the fields available in the public stream header.
No specific buffer is given; simply the read and write pointers.
The underlying 'read' function is replaced by a 'next' function
that makes the next block of data available and returns the first
character of it (or EOF).
A caller to the 'next' function should supply the maximum number of
bytes that it knows it will need (possibly not now, but eventually).
This enables the underlying stream to efficiently decode just enough.
The underlying stream is free to return fewer, or a greater number
if it wants to.
The exact size of the 'block' of data returned will depend on the
filter in use and (possibly) the data therein.
Callers can get the currently available amount of data by calling
fz_available (but again should pass the maximum amount of data they know
they will need). The only time this will ever return 0 is if we have
hit EOF.
|
|
We add various facilities here, intended to allow us to efficiently
minimise the memory we use for holding cached pdf objects.
Firstly, we add the ability to 'mark' all the currently loaded objects.
Next we add the ability to 'clear the xref' - to drop all the currently
loaded objects that have no other references except the ones held by the
xref table itself.
Finally, we add the ability to 'clear the xref to the last mark' - to
drop all the currently loaded objects that have been created since the
last 'mark' operation and have no other references except the ones held
by the xref table.
We expose this to the user by adding a new device hint 'FZ_NO_CACHE'.
If set on the device, then the PDF interpreter will pdf_mark_xref before
starting and pdf_clear_xref_to_mark afterwards. Thus no additional
objects will be retained in memory after a given page is run, unless
someone else picks them up and takes a reference to them as part of
the run.
We amend our simple example app to set this device hint when loading
pages as part of a search.
|
|
|
|
We define a document handler for each file type (2 in the case of PDF, one
to handle files with the ability to 'run' them, and one without).
We then register these handlers with the context at startup, and then
call fz_open_document... as usual. This enables people to select the
document types they want at will (and even to extend the library with more
document types should they wish).
|
|
|
|
Thanks to 'tom' from irc for pointing this out.
|
|
|
|
|