author | Alan Coopersmith <Alan.Coopersmith@Sun.COM> |
Thu, 21 Feb 2008 17:03:02 -0800 | |
changeset 323 | 19895a0cc743 |
permissions | -rw-r--r-- |
323
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1 |
From a6a7fadbb03ee99312dfb15ac478ab3c414c1c0b Mon Sep 17 00:00:00 2001 |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2 |
From: =?utf-8?q?Kristian_H=C3=B8gsberg?= <[email protected]> |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
3 |
Date: Wed, 16 Jan 2008 20:24:11 -0500 |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
4 |
Subject: [PATCH] Don't break grab and focus state for a window when redirecting it. |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
5 |
|
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
6 |
Composite uses an unmap/map cycle to trigger backing pixmap allocation |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
7 |
and cliprect recomputation when a window is redirected or unredirected. |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
8 |
To avoid protocol visible side effects, map and unmap events are |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
9 |
disabled temporarily. However, when a window is unmapped it is also |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
10 |
removed from grabs and loses focus, but these state changes are not |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
11 |
disabled. |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
12 |
|
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
13 |
This change supresses the unmap side effects during the composite |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
14 |
unmap/map cycle and fixes this bug: |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
15 |
|
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
16 |
http://bugzilla.gnome.org/show_bug.cgi?id=488264 |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
17 |
|
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
18 |
where compiz would cause gnome-screensaver to lose its grab when |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
19 |
compiz unredirects the fullscreen lock window. |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
20 |
--- |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
21 |
dix/window.c | 3 ++- |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
22 |
1 files changed, 2 insertions(+), 1 deletions(-) |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
23 |
|
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
24 |
diff --git a/dix/window.c b/dix/window.c |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
25 |
index 33cf76b..1ccf126 100644 |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
26 |
--- a/dix/window.c |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
27 |
+++ b/dix/window.c |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
28 |
@@ -2993,7 +2993,8 @@ #ifdef PANORAMIX |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
29 |
} |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
30 |
#endif |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
31 |
(* Unrealize)(pChild); |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
32 |
- DeleteWindowFromAnyEvents(pChild, FALSE); |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
33 |
+ if (MapUnmapEventsEnabled(pWin)) |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
34 |
+ DeleteWindowFromAnyEvents(pChild, FALSE); |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
35 |
if (pChild->viewable) |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
36 |
{ |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
37 |
#ifdef DO_SAVE_UNDERS |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
38 |
-- |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
39 |
1.4.1 |
19895a0cc743
6662225 Composite extension should be enabled by default
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
40 |