<feed xmlns='http://www.w3.org/2005/Atom'>
<title>atril, branch atspi-selection-fixes</title>
<subtitle>MATE document viewer</subtitle>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/'/>
<entry>
<title>a11y: allow selecting through the very last character</title>
<updated>2026-08-05T18:42:35+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-08-05T18:42:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=f8cd470113bc84c93b20e29bd460ebd8338aa5b1'/>
<id>f8cd470113bc84c93b20e29bd460ebd8338aa5b1</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>a11y: keep selections on other pages when adding or removing one</title>
<updated>2026-08-05T18:26:58+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-08-05T18:15:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=55825e1428773100781ef0643432590238f3432b'/>
<id>55825e1428773100781ef0643432590238f3432b</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>a11y: report selection changes on the right page</title>
<updated>2026-08-05T18:20:59+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-08-05T13:40:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=768029f73951debffb1ec0657219db68b66349ee'/>
<id>768029f73951debffb1ec0657219db68b66349ee</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>a11y: fix selection bleeding into the previous line</title>
<updated>2026-08-05T18:20:33+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-08-05T13:28:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=eee9e3ce680f02378b4d0a3a03afa0615f21c41f'/>
<id>eee9e3ce680f02378b4d0a3a03afa0615f21c41f</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>a11y: implement text selection support for pages</title>
<updated>2026-08-05T18:17:50+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-08-05T13:09:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=9a945a7951ae40427182b4aba1976136256ba42b'/>
<id>9a945a7951ae40427182b4aba1976136256ba42b</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>epub: Implement search using WebKit find controller</title>
<updated>2026-07-12T20:34:07+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-06-05T17:10:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=ca0d4153739b8c892f49e97a20c39436a8a5893f'/>
<id>ca0d4153739b8c892f49e97a20c39436a8a5893f</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>epub: Store GepubDoc handle in EvWebView and simplify navigation</title>
<updated>2026-07-12T20:34:07+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-06-05T17:03:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=53a43e8f21133eee47195d1ba3df2b042d386baa'/>
<id>53a43e8f21133eee47195d1ba3df2b042d386baa</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>epub: Expose GepubDoc handle via EvDocument virtual method</title>
<updated>2026-07-12T20:34:07+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-06-05T16:49:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=6b07b9a438a5ce61b002421e98d0fe593b009275'/>
<id>6b07b9a438a5ce61b002421e98d0fe593b009275</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>epub: Remove MathJax build configuration</title>
<updated>2026-07-12T20:34:07+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-05-14T19:59:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=95bf56ea2677787d7326c20dd4e120bf184f5089'/>
<id>95bf56ea2677787d7326c20dd4e120bf184f5089</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>epub: Remove dead code and unused virtual methods</title>
<updated>2026-07-12T20:34:07+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-05-14T19:26:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=c6e534a7082d1acd9588ef251b8f759ed2dba163'/>
<id>c6e534a7082d1acd9588ef251b8f759ed2dba163</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
</feed>
