diff options
author | marha <marha@users.sourceforge.net> | 2010-07-14 06:40:19 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2010-07-14 06:40:19 +0000 |
commit | 865af20e32591176d03acf984d9b5788d5ebce21 (patch) | |
tree | d5e216fa6fa5cdbb83834cc38bd5b96fc41c97de /xorg-server/hw/xfree86/shadowfb/shadow.c | |
parent | 81124070f120ab658e094b64f6944d701b003a99 (diff) | |
download | vcxsrv-865af20e32591176d03acf984d9b5788d5ebce21.tar.gz vcxsrv-865af20e32591176d03acf984d9b5788d5ebce21.tar.bz2 vcxsrv-865af20e32591176d03acf984d9b5788d5ebce21.zip |
xserver libxcb git update 14/7/2010
Diffstat (limited to 'xorg-server/hw/xfree86/shadowfb/shadow.c')
-rw-r--r-- | xorg-server/hw/xfree86/shadowfb/shadow.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/xorg-server/hw/xfree86/shadowfb/shadow.c b/xorg-server/hw/xfree86/shadowfb/shadow.c index 4c7551de9..20e70d6ce 100644 --- a/xorg-server/hw/xfree86/shadowfb/shadow.c +++ b/xorg-server/hw/xfree86/shadowfb/shadow.c @@ -216,9 +216,14 @@ static Bool ShadowEnterVT(int index, int flags)
{
ScrnInfoPtr pScrn = xf86Screens[index];
+ Bool ret;
ShadowScreenPtr pPriv = GET_SCREEN_PRIVATE(pScrn->pScreen);
- if((*pPriv->EnterVT)(index, flags)) {
+ pScrn->EnterVT = pPriv->EnterVT;
+ ret = (*pPriv->EnterVT)(index, flags);
+ pPriv->EnterVT = pScrn->EnterVT;
+ pScrn->EnterVT = ShadowEnterVT;
+ if(ret) {
pPriv->vtSema = TRUE;
return TRUE;
}
@@ -229,11 +234,15 @@ ShadowEnterVT(int index, int flags) static void
ShadowLeaveVT(int index, int flags)
{
+ ScrnInfoPtr pScrn = xf86Screens[index];
ShadowScreenPtr pPriv = GET_SCREEN_PRIVATE(xf86Screens[index]->pScreen);
pPriv->vtSema = FALSE;
+ pScrn->LeaveVT = pPriv->LeaveVT;
(*pPriv->LeaveVT)(index, flags);
+ pPriv->LeaveVT = pScrn->LeaveVT;
+ pScrn->LeaveVT = ShadowLeaveVT;
}
/**********************************************************/
|