summaryrefslogtreecommitdiff
path: root/libview
AgeCommit message (Collapse)AuthorFilesLines
7 dayssigning: validate signatures in a background jobmbkma2-0/+77
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.
7 dayssigning: fix poppler version guards, error handling and signature rectmbkma1-32/+61
- 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
2026-10-06make signing more robustmbkma1-2/+2
2026-10-06add digitally signing supportmbkma3-0/+144
2026-08-11a11y: report selection changes only on pages that actually changedVictor Kareh1-4/+72
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
2026-08-11a11y: allow selecting through the very last characterVictor Kareh1-1/+1
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
2026-08-11a11y: keep selections on other pages when adding or removing oneVictor Kareh3-21/+145
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
2026-08-11a11y: report selection changes on the right pageVictor Kareh1-3/+19
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
2026-08-11a11y: fix selection bleeding into the previous lineVictor Kareh1-2/+2
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
2026-08-11a11y: implement text selection support for pagesVictor Kareh1-0/+1
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
2026-07-12epub: Implement search using WebKit find controllerVictor Kareh2-207/+31
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
2026-07-12epub: Store GepubDoc handle in EvWebView and simplify navigationVictor Kareh1-16/+13
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
2026-07-12epub: Implement night mode using WebKit user stylesheetsVictor Kareh1-19/+24
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
2026-07-12epub: Replace backend internals with libgepubVictor Kareh1-0/+52
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
2026-07-12epub: Add libgepub-0.7 build dependencyVictor Kareh1-0/+1
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
2026-06-25Add allow-links-change-zoom settingEduard Beutel3-24/+72
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
2026-05-27Fix and off-by-one error for fit-to-page zoomUlrich Spörlein1-2/+31
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.
2026-04-10libview: Account for device scale in page cache size calculationVictor Kareh1-1/+4
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.
2026-04-10libview: Allow zooming to the limits of the scaleVictor Kareh1-6/+19
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
2026-04-10Use properties for can-zoom-in and -outVictor Kareh2-3/+79
This simplifies the logic required to enable zoom actions for consumers of the view. Backported from https://gitlab.gnome.org/GNOME/evince/-/commit/bbfbf913
2026-02-13Improve search systemmbkma2-0/+11
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
2025-12-23meson: Clean up tests for EPubColomban Wendling1-1/+1
* 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.
2025-12-23meson: Replace backend boolean options with featuresColomban Wendling1-1/+1
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.
2025-11-05Fix meson pkg-config compatibility with configuresj1-1/+1
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.
2025-05-15meson: Fix libview GIR namespace (#638)Colomban Wendling1-1/+1
2025-04-24epub: Disable thumbnailing sidebar.Michael Webster1-115/+7
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.
2025-04-04fix more build errorsOz Tiram1-1/+7
Signed-off-by: Oz Tiram <[email protected]>
2025-04-04chore: clean references to xreaderOz Tiram1-2/+2
Signed-off-by: Oz Tiram <[email protected]>
2025-04-04Initial support for mesonOz Tiram1-0/+116
Mostly copy and paste from linuxmint/xreader Signed-off-by: Oz Tiram <[email protected]>
2025-03-31libview/ev-document-model.c remove one more deprecation warningOz Tiram1-1/+1
Signed-off-by: Oz Tiram <[email protected]>
2022-02-11Fix implicit conversion changes signedness: 'gboolean' to 'guint'rbuj3-8/+8
2022-01-02Don't build the path to stock iconsrbuj2-15/+3
2021-11-20Use a blank line at mostrbuj11-24/+0
2021-04-13introspection: Fix bogus --library arguments.orbea1-1/+1
2021-01-28Remove warning -Wtype-limitsrbuj1-1/+1
2021-01-07Check whether the document page failed to renderrbuj2-1/+18
2020-08-23ev-pixbuf-cache: Remove -Wtype-limits warningsrbuj1-6/+6
2020-08-16Remove unused macrosPablo Barciela3-11/+0
2020-06-18Re-enable highlight_find_resultsOz N Tiram2-8/+3
2020-06-18Fix -Wunused-function warnings caused by --enable-synctex=noOz N Tiram2-1/+12
2020-06-18Make synctex optionalOz Tiram1-1/+8
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.
2019-12-08libview: fixing memory leakGiselle Reis1-22/+21
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
2019-12-08Revert "First page should not reloaded"raveit652-6/+5
This reverts commit 00fad2c0d0fcdade570a08f046e85a4558f1fc0c. and fixes https://github.com/mate-desktop/atril/issues/404
2019-11-28avoid redundant redeclarationsPablo Barciela4-33/+0
2019-11-23libview: Reset `pressed_button` when starting Drag and DropMartin Wimpress1-0/+2
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
2019-08-21ev-view: Remove unused variables and assignmentrbuj1-3/+0
2019-08-19view-presentation: Use monitor instead of screenraveit651-4/+30
to determine window size. Replace {Width/Hight}OfScreen which works only with X11
2019-08-16ev-link-accessible: avoid 'g_type_class_add_private'Pablo Barciela1-3/+2
2019-08-16ev-timeline: avoid 'g_type_class_add_private'Pablo Barciela1-41/+38
2019-08-16ev-form-field-accessible: avoid 'g_type_class_add_private'Pablo Barciela1-3/+2