e32b32d
From c7e37fc93d9efa010f60be260f741539600db597 Mon Sep 17 00:00:00 2001
042ccfb
From: Adam Jackson <ajax@redhat.com>
e32b32d
Date: Fri, 19 Dec 2008 13:42:52 +1000
042ccfb
Subject: [PATCH] Send less damage for manually redirected windows.
042ccfb
Kristian Høgsberg d470a6c
Disable damage notifications on move for manually redirected windows.
Kristian Høgsberg d470a6c
The automatic compositor needs damage notification on move, but a
Kristian Høgsberg d470a6c
compositing manager doesn't.
Kristian Høgsberg d470a6c
e32b32d
Forward-ported to 1.6 by whot.
042ccfb
---
e32b32d
 composite/compwindow.c |    8 ++++++--
e32b32d
 1 files changed, 6 insertions(+), 2 deletions(-)
e32b32d
e32b32d
diff --git a/composite/compwindow.c b/composite/compwindow.c
e32b32d
index 577fa73..f838a24 100644
e32b32d
--- a/composite/compwindow.c
e32b32d
+++ b/composite/compwindow.c
e32b32d
@@ -580,12 +580,15 @@ compCopyWindow (WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
Kristian Høgsberg d470a6c
     }
Kristian Høgsberg d470a6c
     else
Kristian Høgsberg d470a6c
     {
e32b32d
+	CompWindowPtr cw = GetCompWindow(pWin);
Kristian Høgsberg d470a6c
+
Kristian Høgsberg d470a6c
 	ptOldOrg.x -= dx;
Kristian Høgsberg d470a6c
 	ptOldOrg.y -= dy;
Kristian Høgsberg d470a6c
 	REGION_TRANSLATE (prgnSrc, prgnSrc,
Kristian Høgsberg d470a6c
 			  pWin->drawable.x - ptOldOrg.x,
Kristian Høgsberg d470a6c
 			  pWin->drawable.y - ptOldOrg.y);
e32b32d
-	DamageRegionAppend(&pWin->drawable, prgnSrc);
Kristian Høgsberg d470a6c
+	if (pWin->redirectDraw && cw->update == CompositeRedirectAutomatic)
e32b32d
+	    DamageRegionAppend(&pWin->drawable, prgnSrc);
Kristian Høgsberg d470a6c
     }
Kristian Høgsberg d470a6c
     cs->CopyWindow = pScreen->CopyWindow;
Kristian Høgsberg d470a6c
     pScreen->CopyWindow = compCopyWindow;
e32b32d
@@ -664,7 +667,8 @@ compSetRedirectBorderClip (WindowPtr pWin, RegionPtr pRegion)
Kristian Høgsberg d470a6c
     /*
Kristian Høgsberg d470a6c
      * Report that as damaged so it will be redrawn
Kristian Høgsberg d470a6c
      */
e32b32d
-    DamageRegionAppend(&pWin->drawable, &damage);
e32b32d
+    if (pWin->redirectDraw && cw->update == CompositeRedirectAutomatic)
e32b32d
+	DamageRegionAppend(&pWin->drawable, &damage);
Kristian Høgsberg d470a6c
     REGION_UNINIT (pScreen, &damage);
Kristian Høgsberg d470a6c
     /*
Kristian Høgsberg d470a6c
      * Save the new border clip region
e32b32d
-- 
e32b32d
1.6.0.4
e32b32d