| Age | Commit message (Collapse) | Author | Files | Lines |
|
Signature validation can do an online OCSP revocation check, which
blocked the UI while a signed document was being opened. Run it in a
new EvJobSignatures thread job and show the info bar when it finishes.
The NSS password cache is now protected by a lock since the password
callback can be called from the job thread.
|
|
- guard signing API behind poppler 23.07, validation behind 22.02
- only enable Digital Signing when the backend can sign
- show signing errors, remove temp file on failure
- reload the window when the open document was overwritten and keep
the original file permissions
- escape certificate names in markup, use a localized date
- draw the signature rect once, reset pressed button on release,
handle rotation/borders and clamp to the page
- fix test/Makefile.am EXTRA_DIST
|
|
|
|
|
|
The previous fix notified every page that currently has a selection, but
that still got the wrong page: removing a selection on one page while
another page's selection stays untouched reported the change on the
untouched page instead of the one it actually happened on.
Now we compare against the previous selection state and only notify
pages that gained, lost, or changed a selection.
Fixes #721
|
|
Selecting the entire document text failed silently and nothing got
selected. The code was rejecting a valid request to select all the way
to the end of the text, treating it as out of range instead.
Now that request is accepted, so selecting through the last character
works as expected.
Fixes #718
|
|
Selecting text on one page and then selecting more text on another page
was wiping out the first selection instead of adding to it. The same
problem hit in reverse: removing the selection on one page was clearing
every other page's selection too.
Both operations now only touch the page they're actually asked about,
leaving selections on other pages alone.
Fixes #722
Fixes #723
|
|
When text was selected, assistive technologies were sometimes told the
change happened on the wrong page where nothing was selected at all.
Instead of guessing which page to report, we now check every page that
actually has a selection and notify each one.
Fixes #721
|
|
Selecting a range of text sometimes grabbed an extra line above what was
actually asked for.
The selection boundaries were anchored to the very top and bottom edge
of the first and last characters, which could stray into the line next
door. Anchoring to the middle of each character instead keeps the
selection where it belongs.
Fixes #720
|
|
Assistive technologies asking Atril to select a range of text got no
response and the request would silently fail with nothing selected.
The selection code already existed but was never hooked up, so it just
needed to be wired in.
Fixes #719
|
|
Bypass the threaded EvJobFind for EPUB documents and use WebKit's
WebKitFindController directly. The threaded find job was incompatible
with GepubDoc's single-threaded design and caused segfaults. The new
approach searches within the current page using WebKit's built-in text
search and highlighting, which is both simpler and thread-safe.
Assisted-by: OpenCode:claude-opus-4-6
|
|
Store a reference to the GepubDoc in EvWebView via the new
get_doc_handle virtual method. Simplify next_page and previous_page to
just update the document model, letting the page-changed callback handle
content loading. This removes duplicate URI loading and prepares for
reimplementing search with WebKit's find controller.
Assisted-by: OpenCode:claude-opus-4-6
|
|
Replace the old approach of modifying extracted HTML files on disk with
a WebKitUserStyleSheet injected via the WebKitUserContentManager. This
is cleaner and works with the new libgepub backend which no longer
extracts files to a temporary directory.
Assisted-by: OpenCode:claude-opus-4-6
|
|
Replace the hand-rolled EPUB parsing with libgepub. This removes the
bundled minizip library, custom XML utilities, and temporary directory
extraction in favor of GepubDoc which handles archive access, metadata,
spine navigation, and table of contents. An epub:// URI scheme handler
serves resources directly from the archive without extracting to disk.
Search and night mode are stubbed as no-ops pending follow-up commits.
Assisted-by: OpenCode:claude-opus-4-6
|
|
Add libgepub as a required dependency for the EPUB backend in both meson
and autotools build systems. No source code changes yet, but this
prepares for replacing the hand-rolled EPUB parsing with libgepub.
Assisted-by: OpenCode:claude-opus-4-6
|
|
When enabled links are not allowed to change the current zoom mode and
level.
Fixes #712
Backported from https://gitlab.gnome.org/GNOME/evince/-/commit/5d8ef0fa
|
|
In dual pane mode, with a mix of landscape and portrait pages, the wrong
zoom level was getting applied to the wrong panes.
For comic book spreads with the right side page being double-wide, this
was ok. But when the left-page was double-wide, the extra zoom was
applied to the *preceeding* dual pane view (making it extra small) and
the actual wider pane got the standard zoom factor applied.
Add debug logging showing the decision being made, which uncoveres the
bug.
|
|
On HiDPI displays, rendered pages use more memory than the cache budget
expects because the size calculation does not account for the device
scale factor. This causes the cache to use up to 4x more memory than
configured on 2x HiDPI displays.
|
|
If the current zoom level was within one zoom factor of the limit, it
was not possible to scroll towards the limit. This made smooth scrolling
near the limit awkward, as unless the scroll event had a large delta it
was impossible to reach the zoom limit. Non-smooth scrolling was also
affected, but it was just much more difficult to trigger.
Fix this by allowing zooming while the current zoom level is within one
zoom factor of the limit. Add a new ev_view_can_zoom() function to make
zooming by a factor (as with smooth scrolling) more convenient.
Backported from https://gitlab.gnome.org/GNOME/evince/-/commit/6d299b69
|
|
This simplifies the logic required to enable zoom actions for
consumers of the view.
Backported from https://gitlab.gnome.org/GNOME/evince/-/commit/bbfbf913
|
|
shell: Add EvFindSidebar widget to show search results
see https://gitlab.gnome.org/GNOME/evince/-/commit/940ce8048e4fc6503dca03c1ce090ff4a11dface
eggfindbar: don't close the findbar when it loses the focus
see https://gitlab.gnome.org/GNOME/evince/-/commit/a2d781fb124bd19861035fd41dacc976e00d19ef
shell: Add the findbar to the main box instead of the view box
libview: Add ev_view_find_set_result
|
|
* Properly require WebKit for the EPub backend, instead of it being an
optional dependency.
* Merge EPub tests together to simplify things.
* Make MathJax optional, as it always has been. If missing, MathML will
likely not display properly, but it's probably not that big of a deal
as it's not the only use case for the EPub backend. If not found at
setup time, use the historical default as fallback, in case it gets
installed later.
Note that all this MathJax stuff is currently unused, because the code
has not been adjusted to make use of this check's results.
|
|
This allows enabling the backend automatically depending on whether the
dependencies are satisfied or not, like Autotool's counterpart.
By default, the PDF backend is force-enabled and the Pixbuf backend is
disabled, as with Autotools.
|
|
pkg-config input files set -latrilview etc. but the library outputs
created were libview.so, so any project that used pkg-config was broken,
not to mention that the file itself also got renamed from its previous
value and pkg-config wouldn't find it anymore.
|
|
|
|
A recent update to libwebkitgtk2gtk-4.1 breaks using WebKitWebView
in a GtkOffscreenWindow.
Disable the thumbnail sidebar with epub documents, and disable
updating the GtkWindow thumbnail.
ref:
https://github.com/WebKit/WebKit/commit/8d7385fad3ffb31d0c438e6b6a50dffb4390840c
Fixes: #631.
|
|
Signed-off-by: Oz Tiram <[email protected]>
|
|
Signed-off-by: Oz Tiram <[email protected]>
|
|
Mostly copy and paste from linuxmint/xreader
Signed-off-by: Oz Tiram <[email protected]>
|
|
Signed-off-by: Oz Tiram <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Not everyone who reads PDF's is necessarily a LaTeX user.
These changes allow users to install atril without the huge bagage
of tex-live on systems where synctex isn't provided as a stand alone
library.
|
|
The memory leak was caused by a g_signal_connect
which was never disconnected. This patch makes
sure the signal is disconnected and the job is
cancelled before creating another rendering job.
It additionally introduces a helper function to
cleanly finalize the job.
origin commit:
https://gitlab.gnome.org/GNOME/evince/commit/939c434
|
|
This reverts commit 00fad2c0d0fcdade570a08f046e85a4558f1fc0c.
and fixes https://github.com/mate-desktop/atril/issues/404
|
|
|
|
If view->pressed_button is left set, when the Drag and Drop operation completes, Atril will act as if it is still in a selection event.
Adapted from: https://gitlab.gnome.org/GNOME/evince/commit/92828bb797742e04aadbfdd62ba1da36837c37cf
|
|
|
|
to determine window size.
Replace {Width/Hight}OfScreen which works only with X11
|
|
|
|
|
|
|