summaryrefslogtreecommitdiff
path: root/xc/programs/Xserver/Xext/xf86dga.c
diff options
context:
space:
mode:
Diffstat (limited to 'xc/programs/Xserver/Xext/xf86dga.c')
-rw-r--r--xc/programs/Xserver/Xext/xf86dga.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/xc/programs/Xserver/Xext/xf86dga.c b/xc/programs/Xserver/Xext/xf86dga.c
index aa61e850a..9593c4a40 100644
--- a/xc/programs/Xserver/Xext/xf86dga.c
+++ b/xc/programs/Xserver/Xext/xf86dga.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/Xext/xf86dga.c,v 3.19 1999/08/01 07:56:59 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/Xext/xf86dga.c,v 3.21 2000/06/30 19:06:54 keithp Exp $ */
/*
@@ -100,6 +100,10 @@ ProcXF86DGADirectVideo(ClientPtr client)
if(Success != DGASetMode(stuff->screen, num, &mode, &pix))
return (DGAErrorBase + XF86DGAScreenNotActive);
+ DGASetInputMode (stuff->screen,
+ (stuff->enable & XF86DGADirectKeyb) != 0,
+ (stuff->enable & XF86DGADirectMouse) != 0);
+
return (client->noClientException);
}
@@ -145,7 +149,16 @@ ProcXF86DGASetViewPort(ClientPtr client)
REQUEST_SIZE_MATCH(xXF86DGASetViewPortReq);
if (!DGAActive(stuff->screen))
- return (DGAErrorBase + XF86DGADirectNotActivated);
+ {
+ int num;
+ PixmapPtr pix;
+ XDGAModeRec mode;
+
+ if(!(num = DGAGetOldDGAMode(stuff->screen)))
+ return (DGAErrorBase + XF86DGANoDirectVideoMode);
+ if(Success != DGASetMode(stuff->screen, num, &mode, &pix))
+ return (DGAErrorBase + XF86DGAScreenNotActive);
+ }
if (DGASetViewport(stuff->screen, stuff->x, stuff->y, DGA_FLIP_RETRACE)
!= Success)