summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
7 daysa11y: report selection changes only on pages that actually changedHEADmasterVictor 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
7 daysa11y: 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
7 daysa11y: 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
7 daysa11y: 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
7 daysa11y: 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
7 daysa11y: 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 Kareh3-225/+59
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: Expose GepubDoc handle via EvDocument virtual methodVictor Kareh3-0/+21
Add a get_doc_handle virtual method to EvDocumentClass so the view layer can obtain the underlying GepubDoc without depending on backend types directly. This prepares for replacing EvWebView with GepubWidget which needs the GepubDoc to render content. Assisted-by: OpenCode:claude-opus-4-6
2026-07-12epub: Remove MathJax build configurationVictor Kareh4-51/+0
WebKit2GTK renders MathML natively so the MathJax script injection is no longer needed. Remove the mathjax-directory build option, the auto-detection logic, and the CI package dependency. Assisted-by: OpenCode:claude-opus-4-6
2026-07-12epub: Remove dead code and unused virtual methodsVictor Kareh9-2999/+0
Remove the bundled minizip directory, unused includes, and the night mode virtual methods from EvDocumentClass which are no longer called by any code. Night mode is now handled entirely through WebKit user stylesheets. Assisted-by: OpenCode:claude-opus-4-6
2026-07-12epub: Pre-compute page paths and disable find interfaceVictor Kareh1-33/+27
Pre-compute all page URI paths at load time so get_page is thread-safe and does not mutate GepubDoc state. Remove the EvDocumentFind interface because the threaded find job is incompatible with the single-threaded GepubDoc and WebKit. EPUB search will be reimplemented using WebKit's native find controller in a future commit. Assisted-by: OpenCode:claude-opus-4-6
2026-07-12epub: Implement night mode using WebKit user stylesheetsVictor Kareh2-31/+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 Kareh7-1700/+336
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 Kareh4-2/+5
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 Beutel5-24/+96
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-06-25chore(deps): bump actions/checkout from 6 to 7dependabot[bot]2-2/+2
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]>
2026-06-25chore(deps): bump actions/cache from 5 to 6dependabot[bot]1-1/+1
Bumps [actions/cache](https://github.com/actions/cache) from 5 to 6. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/cache dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]>
2026-06-06epub: add NULL guards to prevent crashes with malformed EPUBsVictor Kareh1-1/+8
EPUB files with missing or incomplete metadata (like no title or missing navigation elements) can cause NULL pointer dereferences in the XML parsing functions. This adds NULL checks to xml_parse_children_of_node, get_child_list, and the TOC text parsing loop. Fixes #707
2026-06-05Add option to reset metadata for documentsL_J1-0/+59
Adds a new --reset-metadata command-line option that clears all stored metadata (page position, zoom level, window geometry, etc.) for specified document files before opening them. This allows users to open documents with a fresh state, ignoring any previously remembered settings.
2026-06-03Standardize height of action_widgetL_J1-1/+0
2026-06-03Increased recent files display to 10 entriesL_J1-2/+2
2026-06-02release 1.28.6v1.28.6Victor Kareh3-2/+10
2026-06-02meson: Make caja extension optionalVictor Kareh1-1/+0
Change the caja extension feature option to default to 'auto' instead of 'enabled', so that atril builds on systems without libcaja-extension.
2026-06-02build: Distribute meson build files when using autotoolsVictor Kareh3-3/+49
Fixes #673 Backported from https://gitlab.gnome.org/GNOME/evince/-/commit/021428c9
2026-06-02epub: validate epub content before parsingVictor Kareh1-3/+20
Check that the content file exists before attempting to parse it, and handle failures in document title extraction gracefully.
2026-06-02epub: use g_strndup for parsing document pathVictor Kareh1-9/+2
Replace manual byte-by-byte copy loop with g_strndup when extracting the directory component from the epub container's full-path attribute.
2026-05-27Fix and off-by-one error for fit-to-page zoomUlrich Spörlein3-3/+36
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-05-21release 1.28.5v1.28.5Victor Kareh3-2/+19
2026-05-19window: sidebar ignores settings when no metadataVictor Kareh1-7/+6
The sidebar settings were ignored when opening documents on systems without GVFS metadata support. Now when metadata is not available, we use whatever is in gsettings, and when metadata is available, we respect the per-document state. Fixes #163
2026-05-19shell: adding annotation squiggly.Victor Kareh1-0/+13
Underline icon is used for squiggly annotations in the sidebar. Backported from https://gitlab.gnome.org/GNOME/evince/-/commit/9f790bed
2026-05-19pdf: adding annotation squiggly.Victor Kareh1-0/+3
This adds support to the pdf backend for loading and saving text markup annotations of subtype Squiggly. Backported from https://gitlab.gnome.org/GNOME/evince/-/commit/5702e401
2026-05-19libdocument: adding annotation squiggly.Victor Kareh2-1/+12
This adds the type to libdocument, as well as a method to create such annotations. Backported from https://gitlab.gnome.org/GNOME/evince/-/commit/81c268b8
2026-05-19Add support for reading underline text markup annotationsVictor Kareh4-1/+28
Backported from https://gitlab.gnome.org/GNOME/evince/-/commit/4bd88ed0
2026-05-19Add support for reading strike out text markup annotationsVictor Kareh4-10/+52
Backported from https://gitlab.gnome.org/GNOME/evince/-/commit/9b71d67e
2026-05-19libdocument: Use a common annotation type for text markup annotationsVictor Kareh2-7/+73
And a type property for the different kinds of text markup annotations Backported from https://gitlab.gnome.org/GNOME/evince/-/commit/28e04b43
2026-05-19shell: Show highlight annotations in the sidebarVictor Kareh1-0/+12
Backported from https://gitlab.gnome.org/GNOME/evince/-/commit/18595cc3
2026-05-19pdf: Create highlight annotations for existing annotations in documentVictor Kareh1-0/+3
Implementing the type and a method to create highlight annotations. Backported from https://gitlab.gnome.org/GNOME/evince/-/commit/53c349e8
2026-05-19libdocument: adding annotation highlightVictor Kareh2-1/+14
Implementing the type and a method to create highlight annotations. Backported from https://gitlab.gnome.org/GNOME/evince/-/commit/6a6135d8
2026-05-19libdocument: adding class EvAnnotationTextMarkupVictor Kareh2-2/+49
Implementing the (trivial) class EvAnnotationTextMarkup and fixing a typo. Backported from https://gitlab.gnome.org/GNOME/evince/-/commit/714c34dc
2026-05-19remove escape charJean-Baptiste Holcroft1-1/+2
this prevent weblate processing
2026-05-19remove duplicated language filesJean-Baptiste Holcroft3-4572/+0
cmn is same as zh_cn es_ES is same as es
2026-05-19CI: release - create tarball with autotools (distcheck)raveit651-2/+2
2026-05-14release 1.28.4v1.28.4Victor Kareh3-2/+39
2026-05-14ev-application: Quote user-supplied strings in ev_spawn command lineVictor Kareh1-7/+13
When spawning a new atril instance for cross-document links, the destination and search parameters from the document were interpolated directly into the command line without shell quoting. Values containing spaces or special characters could be split into separate arguments by the shell parser, potentially being interpreted as unintended flags by the child process. Apply shell quoting to page label, named destination, and search string values before appending them to the command line, consistent with how other spawn sites in the codebase already handle this.
2026-04-29Weblate migration (#690)Olivier Schneider76-8000/+42520
* update pot files * retrieve last transifex translations * remove empty po file * add translation coverage badge * fix invalid po files
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-10Increase default page cache size to 500 MiBVictor Kareh1-1/+1
Using 50 MiB is not enough to show an A0-sized document in a HiDPI display. This bumps the page cache size to 500 MiB to provide enough headroom. This memory is not pre-allocated, it just provides a safety limit.
2026-04-10ev-window: Limit max zoom based on largest page sizeVictor Kareh1-0/+15
Cairo surfaces have a limit of 32767px in any dimension, so we make sure that we don't end up zooming in past the point where the rendered surface is larger than that limit.
2026-04-10ev-window: Remove unnecessary calculationVictor Kareh1-5/+1
Measuring image dimensions based on rotation is unnecessary, since the result is either w×h or h×w, which is commutative.