Fix bug #8563.
authorIan Romanick <idr@us.ibm.com>
Mon, 16 Oct 2006 17:50:19 +0000 (17:50 +0000)
committerIan Romanick <idr@us.ibm.com>
Mon, 16 Oct 2006 17:50:19 +0000 (17:50 +0000)
Fixes a GLX protocol problem when binding an indirect rendering context
after a direct rendering context.  In this case, the oldContetTag sent to
the server should be None, but the currectContextTag stored in the direct
rendering context (i.e., -1) was sent instead.

src/glx/x11/glxext.c

index 057e799f677852eeaf180c8ed730d826219547b7..d38643639650f1d581725555c5d68e11424a962e 100644 (file)
@@ -1612,7 +1612,7 @@ USED static Bool MakeContextCurrent(Display *dpy, GLXDrawable draw,
        /* Send a glXMakeCurrent request to bind the new context. */
        bindReturnValue = 
          SendMakeCurrentRequest(dpy, opcode, gc ? gc->xid : None,
-                                (dpy != oldGC->currentDpy) 
+                                ((dpy != oldGC->currentDpy) || oldGC->isDirect)
                                 ? None : oldGC->currentContextTag,
                                 draw, read, &reply);
     }