Contents of /trunk/xorg-server/patches/xorg-server-1.4.0.90-compiz-keyboard-grab.patch
Parent Directory | Revision Log
Revision 486 -
(show annotations)
(download)
Wed Feb 13 00:09:39 2008 UTC (16 years, 7 months ago) by niro
File size: 1353 byte(s)
Wed Feb 13 00:09:39 2008 UTC (16 years, 7 months ago) by niro
File size: 1353 byte(s)
-added several security fixes, a fix for compiz and openoffice
1 | From a6a7fadbb03ee99312dfb15ac478ab3c414c1c0b Mon Sep 17 00:00:00 2001 |
2 | From: =?utf-8?q?Kristian=20H=C3=B8gsberg?= <krh@redhat.com> |
3 | Date: Wed, 16 Jan 2008 20:24:11 -0500 |
4 | Subject: [PATCH] Don't break grab and focus state for a window when redirecting it. |
5 | |
6 | Composite uses an unmap/map cycle to trigger backing pixmap allocation |
7 | and cliprect recomputation when a window is redirected or unredirected. |
8 | To avoid protocol visible side effects, map and unmap events are |
9 | disabled temporarily. However, when a window is unmapped it is also |
10 | removed from grabs and loses focus, but these state changes are not |
11 | disabled. |
12 | |
13 | This change supresses the unmap side effects during the composite |
14 | unmap/map cycle and fixes this bug: |
15 | |
16 | http://bugzilla.gnome.org/show_bug.cgi?id=488264 |
17 | |
18 | where compiz would cause gnome-screensaver to lose its grab when |
19 | compiz unredirects the fullscreen lock window. |
20 | --- |
21 | dix/window.c | 3 ++- |
22 | 1 files changed, 2 insertions(+), 1 deletions(-) |
23 | |
24 | diff --git a/dix/window.c b/dix/window.c |
25 | index 33cf76b..1ccf126 100644 |
26 | --- a/dix/window.c |
27 | +++ b/dix/window.c |
28 | @@ -2993,7 +2993,8 @@ UnrealizeTree( |
29 | } |
30 | #endif |
31 | (* Unrealize)(pChild); |
32 | - DeleteWindowFromAnyEvents(pChild, FALSE); |
33 | + if (MapUnmapEventsEnabled(pWin)) |
34 | + DeleteWindowFromAnyEvents(pChild, FALSE); |
35 | if (pChild->viewable) |
36 | { |
37 | #ifdef DO_SAVE_UNDERS |
38 | -- |
39 | 1.5.3.8 |
40 |