diff options
author | marha <marha@users.sourceforge.net> | 2010-06-16 07:28:49 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2010-06-16 07:28:49 +0000 |
commit | 2a31e38d82566c4f93773ecf9c79f2cc9abef169 (patch) | |
tree | ab9cdebe56affbbad49351f5e8557058673efcc1 /xorg-server/hw/xfree86/modes/xf86RandR12.c | |
parent | 6753f87d9a6be8dcab916b479a0a122b1b375298 (diff) | |
download | vcxsrv-2a31e38d82566c4f93773ecf9c79f2cc9abef169.tar.gz vcxsrv-2a31e38d82566c4f93773ecf9c79f2cc9abef169.tar.bz2 vcxsrv-2a31e38d82566c4f93773ecf9c79f2cc9abef169.zip |
xserver and libxcb git update 11/6/2010
Diffstat (limited to 'xorg-server/hw/xfree86/modes/xf86RandR12.c')
-rw-r--r-- | xorg-server/hw/xfree86/modes/xf86RandR12.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/xorg-server/hw/xfree86/modes/xf86RandR12.c b/xorg-server/hw/xfree86/modes/xf86RandR12.c index e49387317..90e267c1e 100644 --- a/xorg-server/hw/xfree86/modes/xf86RandR12.c +++ b/xorg-server/hw/xfree86/modes/xf86RandR12.c @@ -928,6 +928,24 @@ xf86RandR12Init (ScreenPtr pScreen) }
void
+xf86RandR12CloseScreen (ScreenPtr pScreen)
+{
+ XF86RandRInfoPtr randrp;
+
+#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0)
+ if (xf86RandR12Key == NULL)
+ return;
+#endif
+
+ randrp = XF86RANDRINFO(pScreen);
+#if RANDR_12_INTERFACE
+ xf86Screens[pScreen->myNum]->EnterVT = randrp->orig_EnterVT;
+#endif
+
+ free(randrp);
+}
+
+void
xf86RandR12SetRotations (ScreenPtr pScreen, Rotation rotations)
{
XF86RandRInfoPtr randrp;
@@ -1755,10 +1773,16 @@ static Bool xf86RandR12EnterVT (int screen_index, int flags)
{
ScreenPtr pScreen = screenInfo.screens[screen_index];
+ ScrnInfoPtr pScrn = xf86Screens[screen_index];
XF86RandRInfoPtr randrp = XF86RANDRINFO(pScreen);
+ Bool ret;
if (randrp->orig_EnterVT) {
- if (!randrp->orig_EnterVT (screen_index, flags))
+ pScrn->EnterVT = randrp->orig_EnterVT;
+ ret = pScrn->EnterVT (screen_index, flags);
+ randrp->orig_EnterVT = pScrn->EnterVT;
+ pScrn->EnterVT = xf86RandR12EnterVT;
+ if (!ret)
return FALSE;
}
|