GNOME Bugzilla – Bug 589369
[csw] GDM background redraw issue
Last modified: 2009-08-10 12:16:03 UTC
Old bug is back again. 2.17.5 was working fine, todays snapshot http://git.gnome.org/cgit/gtk+/commit/?id=cfc27be34e7aeb4fa288eb135598c299aab376c5 exposes the problem again. gdm-2.26.1-13.fc12.x86_64
Created attachment 138995 [details] GDM-Screenshot.jpg
Could you try bisecting this?
027f411150b313082c4bb729ed242d561c98782f is first bad commit commit 027f411150b313082c4bb729ed242d561c98782f Author: Alexander Larsson <alexl@redhat.com> Date: Sat Jul 18 20:37:19 2009 +0200 Check for viewable to avoid doing work instead of mapped This is now cheap and allows us to avoid more work.
Confirming on Ubuntu karmic https://bugs.launchpad.net/bugs/405392
yeah the bug has arised in last gtk+ for me.
Created attachment 140115 [details] [review] a patch here is a patch that I've put in the Fedora packages for now.
Seems to imply a bug in the ->viewable calculation, because that should never be set for !MAPPED windows.
It might be relevant that this is the root window we are talking about here.
Are you saying the root window has !GDK_WINDOW_IS_MAPPED (window) == TRUE?
It appears so: [mclasen@planemask ~]$ python Python 2.6.2 (r262:71600, Jul 30 2009, 17:08:54) [GCC 4.4.1 20090725 (Red Hat 4.4.1-3)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import gtk >>> gtk.gdk.display_get_default().get_default_screen().get_root_window().get_state() <flags GDK_WINDOW_STATE_WITHDRAWN of type GdkWindowState> >>>
Ah, turns out the root window is always !mapped, but we still report it as viewable in gdk_window_is_viewable(), which is a bit weird, but whatever. The problem happens when metacity gets a GraphicsExpose on the root window due to some XCopyArea operation, and this then invalidates on the root window causing it to be manually cleared (with the wrong background color, etc). I fixed this by explicitly not allowing invalidating root windows.