38 lines
1.3 KiB
Diff
38 lines
1.3 KiB
Diff
|
From fbc2fcf685d22ec9bc9465e1f731529979497eaa Mon Sep 17 00:00:00 2001
|
||
|
From: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
|
||
|
Date: Thu, 04 Aug 2011 02:06:13 +0000
|
||
|
Subject: glx/dri2: Paper over errors in DRI2Connect when indirect
|
||
|
|
||
|
DRI2 will throw BadRequest for this when the client is not local, but
|
||
|
DRI2 is an implementation detail and not something callers should have
|
||
|
to know about. Silently swallow errors in this case, and just propagate
|
||
|
the failure through DRI2Connect's return code.
|
||
|
|
||
|
Note: This is a candidate for the stable release branches.
|
||
|
|
||
|
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=28125
|
||
|
Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
|
||
|
---
|
||
|
diff --git a/src/glx/dri2.c b/src/glx/dri2.c
|
||
|
index 229840d..b1b5013 100644
|
||
|
--- a/src/glx/dri2.c
|
||
|
+++ b/src/glx/dri2.c
|
||
|
@@ -190,6 +190,15 @@ DRI2Error(Display *display, xError *err, XExtCodes *codes, int *ret_code)
|
||
|
err->minorCode == X_DRI2DestroyDrawable)
|
||
|
return True;
|
||
|
|
||
|
+ /* If the server is non-local DRI2Connect will raise BadRequest.
|
||
|
+ * Swallow this so that DRI2Connect can signal this in its return code */
|
||
|
+ if (err->majorCode == codes->major_opcode &&
|
||
|
+ err->minorCode == X_DRI2Connect &&
|
||
|
+ err->errorCode == BadRequest) {
|
||
|
+ *ret_code = False;
|
||
|
+ return True;
|
||
|
+ }
|
||
|
+
|
||
|
return False;
|
||
|
}
|
||
|
|
||
|
--
|
||
|
cgit v0.8.3-6-g21f6
|