xorg/xserver/xorg/composite

sandmann freedesktop-cvs-commits at pdx.freedesktop.org
Fri Jan 13 00:14:55 EET 2006


CVS commit by sandmann: 

Thu Jan 12 17:09:18 2006  Søren Sandmann  <sandmann at redhat.com>

	* include/window.[ch]: Add new functions to enable and disable
	events on Map and Unmap. 

	* composite/compalloc.c: Use them here to make sure Composite
	redirect doesn't cause Map/UnmapNotify events that would confuse
	window managers. 


  M +13 -1     xorg/xserver/xorg/composite/compalloc.c   1.8


--- xorg/xserver/xorg/composite/compalloc.c  #1.7:1.8
@@ -102,5 +102,9 @@ compRedirectWindow (ClientPtr pClient, W
         }
         if (wasMapped)
+        {
+            DisableMapUnmapEvents (pWin);
             UnmapWindow (pWin, FALSE);
+            EnableMapUnmapEvents (pWin);
+        }
 
         REGION_NULL (pScreen, &cw->borderClip);
@@ -136,5 +140,7 @@ compRedirectWindow (ClientPtr pClient, W
         Bool    overrideRedirect = pWin->overrideRedirect;
         pWin->overrideRedirect = TRUE;
+        DisableMapUnmapEvents (pWin);
         MapWindow (pWin, pClient);
+        EnableMapUnmapEvents (pWin);
         pWin->overrideRedirect = overrideRedirect;
     }
@@ -170,5 +176,9 @@ compFreeClientWindow (WindowPtr pWin, XI
     {
         if (wasMapped)
+        {
+            DisableMapUnmapEvents (pWin);
             UnmapWindow (pWin, FALSE);
+            EnableMapUnmapEvents (pWin);
+        }
     
         if (pWin->redirectDraw)
@@ -194,5 +204,7 @@ compFreeClientWindow (WindowPtr pWin, XI
         Bool    overrideRedirect = pWin->overrideRedirect;
         pWin->overrideRedirect = TRUE;
+        DisableMapUnmapEvents (pWin);
         MapWindow (pWin, clients[CLIENT_ID(id)]);
+        EnableMapUnmapEvents (pWin);
         pWin->overrideRedirect = overrideRedirect;
     }





More information about the xorg-commit mailing list