glx: Fix a corner case in DrawableGone

Losing the drawable does not change our notion of current client.  Since
the GL under us doesn't understand having a current context without
current drawables (sigh), we do still need to loseCurrent so that we
re-bind the context on the next request.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=65030
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
Adam Jackson 2013-08-05 15:46:11 -04:00
parent 276d8057aa
commit 53653f4889

View File

@ -139,8 +139,8 @@ DrawableGone(__GLXdrawable * glxPriv, XID xid)
next = c->next;
if (c->currentClient &&
(c->drawPriv == glxPriv || c->readPriv == glxPriv)) {
/* just force a re-bind the next time through */
(*c->loseCurrent) (c);
c->currentClient = NULL;
if (c == __glXLastContext)
__glXFlushContextCache();
}