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/glx/glxdri.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/glx/glxdri.c')
-rw-r--r-- | xorg-server/glx/glxdri.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/xorg-server/glx/glxdri.c b/xorg-server/glx/glxdri.c index 642382998..aef60a75a 100644 --- a/xorg-server/glx/glxdri.c +++ b/xorg-server/glx/glxdri.c @@ -866,12 +866,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();
@@ -882,6 +891,7 @@ glxDRIEnterVT (int index, int flags) static void
glxDRILeaveVT (int index, int flags)
{
+ ScrnInfoPtr scrn = xf86Screens[index];
__GLXDRIscreen *screen = (__GLXDRIscreen *)
glxGetScreen(screenInfo.screens[index]);
@@ -889,7 +899,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
|