aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/dix
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2012-10-10 13:31:35 +0200
committermarha <marha@users.sourceforge.net>2012-10-10 13:31:35 +0200
commitac799961eb382e48c68ffda1e1a89b346eb97f81 (patch)
tree96ab9494b7313d30b9b3d37480937fa07136b27b /xorg-server/dix
parente957ce706e896f5ed802d81f26a2663578f8153f (diff)
parent8c5587d9be904856f7e449a144c2819a8e310599 (diff)
downloadvcxsrv-ac799961eb382e48c68ffda1e1a89b346eb97f81.tar.gz
vcxsrv-ac799961eb382e48c68ffda1e1a89b346eb97f81.tar.bz2
vcxsrv-ac799961eb382e48c68ffda1e1a89b346eb97f81.zip
Merge remote-tracking branch 'origin/released'
* origin/released: xserver mesa git update 10 oct 2012
Diffstat (limited to 'xorg-server/dix')
-rw-r--r--xorg-server/dix/events.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/xorg-server/dix/events.c b/xorg-server/dix/events.c
index dd9dce7bb..4f9a762bb 100644
--- a/xorg-server/dix/events.c
+++ b/xorg-server/dix/events.c
@@ -1596,13 +1596,10 @@ DeactivateKeyboardGrab(DeviceIntPtr keybd)
{
GrabPtr grab = keybd->deviceGrab.grab;
DeviceIntPtr dev;
- WindowPtr focusWin = keybd->focus ? keybd->focus->win
- : keybd->spriteInfo->sprite->win;
+ WindowPtr focusWin;
Bool wasImplicit = (keybd->deviceGrab.fromPassiveGrab &&
keybd->deviceGrab.implicitGrab);
- if (focusWin == FollowKeyboardWin)
- focusWin = inputInfo.keyboard->focus->win;
if (keybd->valuator)
keybd->valuator->motionHintWindow = NullWindow;
keybd->deviceGrab.grab = NullGrab;
@@ -1613,6 +1610,17 @@ DeactivateKeyboardGrab(DeviceIntPtr keybd)
if (dev->deviceGrab.sync.other == grab)
dev->deviceGrab.sync.other = NullGrab;
}
+
+ if (keybd->focus)
+ focusWin = keybd->focus->win;
+ else if (keybd->spriteInfo->sprite)
+ focusWin = keybd->spriteInfo->sprite->win;
+ else
+ focusWin = NullWindow;
+
+ if (focusWin == FollowKeyboardWin)
+ focusWin = inputInfo.keyboard->focus->win;
+
DoFocusEvents(keybd, grab->window, focusWin, NotifyUngrab);
if (!wasImplicit && grab->grabtype == XI2)