#1119159 In a PDF with forms, evince allows the user to place a checkmark only once, but the user should be able to select and deselect a box multiple times at his/her will

Package:
evince
Source:
evince
Description:
Document (PostScript, PDF) viewer
Submitter:
Peter Müller
Date:
2025-11-27 20:37:01 UTC
Severity:
normal
#1119159#5
Date:
2025-10-27 19:50:49 UTC
From:
To:
Open the attached file doc.pdf (the first page of https://www.stmb.bayern.de/assets/stmi/wohnen/wohngeld/35_mz_antrag.pdf) with evince from an xterm:

$ evince doc.pdf &

In item “2 Haben Sie in den letzten zwölf Monaten bereits Wohngeld beantragt oder erhalten?”, using the mouse,
1. click on the tickbox near “ja”,
2. then click on the tickbox near “nein”, and
3. at last click on the tickbox near “ja”.

Observations:
- After 1., a checkmark appears near “ja”, as it should.
- After 2., a checkmark disappears near “ja” and appears near “nein”, as it should.
- After 3., the checkmark near “nein” disappears, but the checkmark near “ja” doesn't appear (which is surprising and unexpected). Instead, the box near “ja” simply gets focus (a fine-dashed square inside the original square is seen; cf. the screenshot). The following messages appear in the xterm:

«
(org.gnome.Evince:103104): Atk-CRITICAL **: 20:18:02.810: atk_state_set_clear_states: assertion 'ATK_IS_STATE_SET (set)' failed

(org.gnome.Evince:103104): Atk-CRITICAL **: 20:18:02.810: atk_state_set_or_sets: assertion 'ATK_IS_STATE_SET (set)' failed

(org.gnome.Evince:103104): GLib-GObject-CRITICAL **: 20:18:02.810: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
»

If we now quit evince without saving, the last message is repeated with a new timestamp:

«
(org.gnome.Evince:103104): GLib-GObject-CRITICAL **: 20:19:06.446: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
»

To the journal, the following message is appended:

«
Okt 27 20:30:07 AnonyPC gnome-shell[3023]: JS ERROR: TypeError: this.actor is null
                                            _syncEnabled@resource:///org/gnome/shell/ui/windowManager.js:144:25
                                            onStopped@resource:///org/gnome/shell/ui/windowManager.js:161:35
                                            _makeEaseCallback/<@resource:///org/gnome/shell/ui/environment.js:65:22
                                            _easeActorProperty/<@resource:///org/gnome/shell/ui/environment.js:247:60
                                            _destroyWindowDone@resource:///org/gnome/shell/ui/windowManager.js:1612:21
                                            onStopped@resource:///org/gnome/shell/ui/windowManager.js:1580:39
                                            _makeEaseCallback/<@resource:///org/gnome/shell/ui/environment.js:65:22
                                            _easeActor/<@resource:///org/gnome/shell/ui/environment.js:160:64
                                            @resource:///org/gnome/shell/ui/init.js:21:20
»



If, instead of quitting without saving, we quit with saving and overwrite the original file, we will never be able to visibly mark the box in the overwritten file with evince again :-(.

I don't know whether the PDF file or evince or both are wrong; please debug the issue.  If the file is wrong, evince should complain in advance in an understandable way.  In any case, at least the failing assertions in the console could be replaced by actionable or at least end-user–understandable messages.


We get a variant of the described bug as follows:
1. click on the tickbox near “ja”,
2. then click on the tickbox near “ja” again, and
3. at last click on the tickbox near “ja” again.

In this case,
- after step 1, the checkmark appears as it should,
- after step 2, the checkmark disappears as it should,
- after step 3, the checkmark doesn't appear (which is surprising and unexpected). Instead, the box near “ja” simply gets focus (a fine-dashed square inside the original square is seen). No messages are printed to the console. Upon exit without saving, the journal gets the same as above (with another timestamp):
«
Okt 27 20:36:13 AnonyPC gnome-shell[3023]: JS ERROR: TypeError: this.actor is null
                                            _syncEnabled@resource:///org/gnome/shell/ui/windowManager.js:144:25
                                            onStopped@resource:///org/gnome/shell/ui/windowManager.js:161:35
                                            _makeEaseCallback/<@resource:///org/gnome/shell/ui/environment.js:65:22
                                            _easeActorProperty/<@resource:///org/gnome/shell/ui/environment.js:247:60
                                            _destroyWindowDone@resource:///org/gnome/shell/ui/windowManager.js:1612:21
                                            onStopped@resource:///org/gnome/shell/ui/windowManager.js:1580:39
                                            _makeEaseCallback/<@resource:///org/gnome/shell/ui/environment.js:65:22
                                            _easeActor/<@resource:///org/gnome/shell/ui/environment.js:160:64
                                            @resource:///org/gnome/shell/ui/init.js:21:20
»
If we save the file on exit by rewriting the file, we will never be able to visibly mark the box again :-(.


Gratefully,
Peter

#1119159#10
Date:
2025-11-27 20:35:18 UTC
From:
To:
Dear GNOME maintainers,

A related issue, https://gitlab.freedesktop.org/poppler/poppler/-/issues/1642, has been closed upstream, hopefully with success, but I can't confirm myself yet that the fix is proper. To this end, I'd be happy if I could kindly ask you whether it's possible to package a new version of poppler (I think libpoppler-glib8t64) into Debian sid or Debian experimental. If necessary, consider also libevdocument3-4t64, libevview3-3t64, and evince.

Gratefully!