[arch-commits] CVS update of extra/x11/xorg-server (1 file)

Jan de Groot jgc at archlinux.org
Sun Feb 3 14:53:37 UTC 2008


    Date: Sunday, February 3, 2008 @ 09:53:37
  Author: jgc
    Path: /home/cvs-extra/extra/x11/xorg-server

   Added: 42_dont_break_grab_and_focus_for_window_when_redirecting.diff (1.1)

Add missing patch


---------------------------------------------------------------+
 42_dont_break_grab_and_focus_for_window_when_redirecting.diff |   35 ++++++++++
 1 file changed, 35 insertions(+)


Index: extra/x11/xorg-server/42_dont_break_grab_and_focus_for_window_when_redirecting.diff
diff -u /dev/null extra/x11/xorg-server/42_dont_break_grab_and_focus_for_window_when_redirecting.diff:1.1
--- /dev/null	Sun Feb  3 09:53:37 2008
+++ extra/x11/xorg-server/42_dont_break_grab_and_focus_for_window_when_redirecting.diff	Sun Feb  3 09:53:37 2008
@@ -0,0 +1,35 @@
+commit a6a7fadbb03ee99312dfb15ac478ab3c414c1c0b
+Author: Kristian Høgsberg <krh at redhat.com>
+Date:   Wed Jan 16 20:24:11 2008 -0500
+
+    Don't break grab and focus state for a window when redirecting it.
+    
+    Composite uses an unmap/map cycle to trigger backing pixmap allocation
+    and cliprect recomputation when a window is redirected or unredirected.
+    To avoid protocol visible side effects, map and unmap events are
+    disabled temporarily.  However, when a window is unmapped it is also
+    removed from grabs and loses focus, but these state changes are not
+    disabled.
+    
+    This change supresses the unmap side effects during the composite
+    unmap/map cycle and fixes this bug:
+    
+      http://bugzilla.gnome.org/show_bug.cgi?id=488264
+    
+    where compiz would cause gnome-screensaver to lose its grab when
+    compiz unredirects the fullscreen lock window.
+
+diff --git a/dix/window.c b/dix/window.c
+index 33cf76b..1ccf126 100644
+--- a/dix/window.c
++++ b/dix/window.c
+@@ -2993,7 +2993,8 @@ UnrealizeTree(
+ 	    } 
+ #endif
+ 	    (* Unrealize)(pChild);
+-	    DeleteWindowFromAnyEvents(pChild, FALSE);
++	    if (MapUnmapEventsEnabled(pWin))
++		DeleteWindowFromAnyEvents(pChild, FALSE);
+ 	    if (pChild->viewable)
+ 	    {
+ #ifdef DO_SAVE_UNDERS




More information about the arch-commits mailing list