diff --git a/kwin/kompmgr/kompmgr.c b/kwin/kompmgr/kompmgr.c index a245b0d57..5daf8c217 100644 --- a/kwin/kompmgr/kompmgr.c +++ b/kwin/kompmgr/kompmgr.c @@ -39,6 +39,7 @@ * Added SIGUSR2 handler to reload settings [Prevent flicker on settings change] 08/14/2011 * Added SIGTERM handler to clean up stale PID files on exit 08/14/2011 * Added hack to work around ATI fglrx XDamage event generation bugs [WORK_AROUND_FGLRX] 09/01/2011 + * Redraw root window automatically when X damage events are detected (this fixes xsetroot) 10/23/2011 * * TODO: * http://patchwork.freedesktop.org/patch/1053/ [Fix window mapping with re-used window ids] @@ -1662,6 +1663,17 @@ wintype_name(wintype type) return t; } +void repaint_root_overlay_window () +{ + XRectangle r; + r.x = 0; + r.y = 0; + r.width = root_width; + r.height = root_height; + XserverRegion region = XFixesCreateRegion (dpy, &r, 1); + add_damage (dpy, region); +} + static wintype get_wintype_prop(Display * dpy, Window w) { @@ -3661,6 +3673,7 @@ main (int argc, char **argv) { /* printf("damaging win: %u\n",ev.xany.window);*/ damage_win (dpy, (XDamageNotifyEvent *) &ev); + repaint_root_overlay_window(); } if (ev.type == xshape_event + ShapeNotify) {