avoid XF86DGANoDirectVideoMode while detecting no dga

Greg Turner gmturner007 at ameritech.net
Thu Oct 24 16:21:22 CDT 2002


I did not investigate root causes, so someone may know
a better fix.

LICENSE: X11
CHANGELOG: 
* dlls/x11drv/dga2.c: Greg Turner <gmturner at ameritech.net>
- avoid X11 error during DGA detection.

-- 
gmt

"Oh, and of course, the fastest way to dig
 a tunnel is to dig at both sides."
   -- The Linux Advanced Routing HOWTO

Index: dlls/x11drv/dga2.c
===================================================================
RCS file: /home/wine/wine/dlls/x11drv/dga2.c,v
retrieving revision 1.12
diff -u -r1.12 dga2.c
--- dlls/x11drv/dga2.c  24 Sep 2002 18:36:51 -0000      1.12
+++ dlls/x11drv/dga2.c  24 Oct 2002 21:13:33 -0000
@@ -69,6 +69,8 @@
   int nmodes, major, minor, i;
   Bool ok;
 
+  TRACE("\n");
+
   if (xf86dga2_modes) return; /* already initialized? */
 
   /* if in desktop mode, don't use DGA */
@@ -91,14 +93,23 @@
 
   /* test that it works */
   wine_tsx11_lock();
+  X11DRV_expect_error(gdi_display, DGA2ErrorHandler, NULL);
   if ((ok = XDGAOpenFramebuffer(gdi_display, DefaultScreen(gdi_display))))
   {
-      XDGACloseFramebuffer(gdi_display, DefaultScreen(gdi_display));
-      /* retrieve modes */
-      modes = XDGAQueryModes(gdi_display, DefaultScreen(gdi_display), &nmodes);
-      if (!modes) ok = FALSE;
+      if (X11DRV_check_error()) {
+          WARN("disabling XF86DGA2 (insufficient permissions?)\n");
+          ok = FALSE;
+      } else {
+          XDGACloseFramebuffer(gdi_display, DefaultScreen(gdi_display));
+          /* retrieve modes */
+          modes = XDGAQueryModes(gdi_display, DefaultScreen(gdi_display), &nmodes);
+          if (!modes) ok = FALSE;
+      }
+  } else { 
+      X11DRV_check_error();
+      WARN("disabling XF86DGA2 (insufficient permissions?)\n");
   }
-  else WARN("disabling XF86DGA2 (insufficient permissions?)\n");
+
   wine_tsx11_unlock();
   if (!ok) return;
 




More information about the wine-patches mailing list