summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kwin/kompmgr/kompmgr.c13
1 files changed, 13 insertions, 0 deletions
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)
{