GTK+ rendering issue on ACPI resume
This was originally a thread on debian-user (titled "Thunderbird/Firefox
rendering without borders and scrollbars"), but I was unable to find a
solution there. Thank you to Kent West for being willing to try,
however. I will summarize what I've learned so far.
After resuming from suspend-to-disk (ACPI sleep state 4), Thunderbird
(mozilla-thunderbird in sid), Firefox (mozilla-firefox in sid), and any
other applications that use GTK+ (tried gvim: vim-gtk, for example)
render their interfaces with missing borders, scrollbars, and some other
missing widgets. The affected applications otherwise function correctly.
Mousing over or otherwise activating some widgets cause them to render
correctly again, but when the window is redrawn subsequently (such as
desktop switch or resize) the widget is again drawn incorrectly as
described.
Please see the attached screenshot of Thunderbird for an example.
Setup:
- Default GTK+ theme (no theme packages installed).
- Window manager is openbox (openbox package in sid).
- No GNOME or KDE, etc.
- "nv" driver
- Inspiron 8200
Test 1:
- regular user
- startx with openbox in .xinitrc
- launch mozilla-thunderbird
- launch xterm
- in xterm: echo 4 > /proc/acpi/sleep (suspend to disk)
- [power off]
- [power on]
- resume
Test 2:
- root user
- no X or GTK+ or GUI config files in /root
- put just xterm and mozilla-thunderbird in .xinitrc
- startx as root with NO window manager
- in xterm: echo 4 > /proc/acpi/sleep (suspend to disk)
- [power off]
- [power on]
- resume
The resulting rendering issues (described above) are the same in both
scenarios.
Does resolve the rendering issue:
- reboot
- restart X
Does NOT resolve the rendering issue:
- restarting affected applications
- xrefresh
- switching to text console and back to X
- resizing/hiding/showing affected application
The problem is that rebooting or restarting X for the most part
eliminate the advantages of suspending in the first place. But then a
rendering issue isn't that important so long as everything else
functions properly.
I'd really appreciate any advice on troubleshooting this. Or at least
advice on which package to report a bug against.
Thanks much.
dircha
Reply to: