xlib: stop calling XShmQueryVersion()

It caused an X protocol error in some (rare) situations.
This is a follow-on to the previous commits which fixes a bug reported
by Wayne E. Robertz.

NOTE: This is a candidate for the 7.11 branch.

Reviewed-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
Brian Paul
2012-01-10 19:32:38 -07:00
parent 7f6de60c58
commit 0a20051e6d
+8 -8
View File
@@ -114,16 +114,16 @@ static int host_byte_order( void )
static int check_for_xshm( XMesaDisplay *display )
{
#if defined(USE_XSHM)
int major, minor, ignore;
Bool pixmaps;
int ignore;
if (XQueryExtension( display, "MIT-SHM", &ignore, &ignore, &ignore )) {
if (XShmQueryVersion( display, &major, &minor, &pixmaps )==True) {
return (pixmaps==True) ? 2 : 1;
}
else {
return 0;
}
/* Note: we're no longer calling XShmQueryVersion() here. It seems
* to be flakey (triggers a spurious X protocol error when we close
* one display connection and start using a new one. XShm has been
* around a long time and hasn't changed so if MIT_SHM is supported
* we assume we're good to go.
*/
return 2;
}
else {
return 0;