aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/glx/glxdri.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2010-07-14 10:57:04 +0000
committermarha <marha@users.sourceforge.net>2010-07-14 10:57:04 +0000
commit8fb9d7f4ca923dc7f640a0df6c871348a3e554ab (patch)
tree39ebbf9255fe0fd660ea645f4ebdef3287a5078b /xorg-server/glx/glxdri.c
parent80b785273c916676a94cbe1d7dfbbc93b58127d5 (diff)
parent865af20e32591176d03acf984d9b5788d5ebce21 (diff)
downloadvcxsrv-8fb9d7f4ca923dc7f640a0df6c871348a3e554ab.tar.gz
vcxsrv-8fb9d7f4ca923dc7f640a0df6c871348a3e554ab.tar.bz2
vcxsrv-8fb9d7f4ca923dc7f640a0df6c871348a3e554ab.zip
svn merge ^/branches/released .
Diffstat (limited to 'xorg-server/glx/glxdri.c')
-rw-r--r--xorg-server/glx/glxdri.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/xorg-server/glx/glxdri.c b/xorg-server/glx/glxdri.c
index 73f6051f6..2733cb856 100644
--- a/xorg-server/glx/glxdri.c
+++ b/xorg-server/glx/glxdri.c
@@ -869,12 +869,21 @@ static const char dri_driver_path[] = DRI_DRIVER_PATH;
static Bool
glxDRIEnterVT (int index, int flags)
{
+ ScrnInfoPtr scrn = xf86Screens[index];
+ Bool ret;
__GLXDRIscreen *screen = (__GLXDRIscreen *)
glxGetScreen(screenInfo.screens[index]);
LogMessage(X_INFO, "AIGLX: Resuming AIGLX clients after VT switch\n");
- if (!(*screen->enterVT) (index, flags))
+ scrn->EnterVT = screen->enterVT;
+
+ ret = scrn->EnterVT (index, flags);
+
+ screen->enterVT = scrn->EnterVT;
+ scrn->EnterVT = glxDRIEnterVT;
+
+ if (!ret)
return FALSE;
glxResumeClients();
@@ -885,6 +894,7 @@ glxDRIEnterVT (int index, int flags)
static void
glxDRILeaveVT (int index, int flags)
{
+ ScrnInfoPtr scrn = xf86Screens[index];
__GLXDRIscreen *screen = (__GLXDRIscreen *)
glxGetScreen(screenInfo.screens[index]);
@@ -892,7 +902,10 @@ glxDRILeaveVT (int index, int flags)
glxSuspendClients();
- return (*screen->leaveVT) (index, flags);
+ scrn->LeaveVT = screen->leaveVT;
+ (*screen->leaveVT) (index, flags);
+ screen->leaveVT = scrn->LeaveVT;
+ scrn->LeaveVT = glxDRILeaveVT;
}
static void