Wayland: (repaint bug) invalid cast from 'GtkFileChooserNative' to 'GtkWidget'
Dear evince project maintainers, thanks for this great project.
Unfortuantely in the last few weeks I have had this bug at least once per day. I always have 5+ evince PDFs open. Suddenly one of these evince windows becomes unresponsive, and when you want to resize it with {ALT}+{middle mouse button} weird graphics artifacts appear (black/white boxes) in the area that was previously covered by evince window (which is why I think this is a repainting issue). HOWEVER even though I can't click any UI element it is still possible to save the PDF with CTRL+S combination.
I open this bug to further document this issue with screenshots.
Some technical background:
- A lot of evince PDFs are opened via JABREF, e.g. evince is subprocess of some java thing
- At same time I use sublime text editor for latex compilation, e.g. sublime-text spawns evince instance with the LaTeX-generated PDF in it. The LaTeX-generated PDF gets rebuilt many times. Also, sublime-text is using this evince (dbus?) interface where you can click a line in the evince PDF and then it takes you to the exact line in the source code displayed in sublime-text editor. This also works vice-versa where after every LaTeX compilation (triggered from within sublime-text) the evince PDF viewer jumps to the line that was just added to the PDF document.
So I assume this might be a race condition plus some wayland weirdness.
If you have any idea how I can further debug this issue please let me know. I think it might be hard to observe the jabref- and sublime-text-spawned evince instances in detail.
Again thanks for your help and I'll update this issue with more screenshots as the bug reappears.
My setup is arch linux with GNOME Document Viewer 43.1 on linux 6.2.10-arch1-1 with gdm 44.0-1 and wayland 1.22.0-1 and two processes:
- /usr/lib/gdm-wayland-session /usr/bin/gnome-session
- /usr/bin/Xwayland :0 -rootless -noreset -accessx -core -auth /run/user/1000/.mutter-Xwaylandauth.9LZ521 -listenfd 4 -listenfd 5 -displayfd 6 -initfd 7