From 19f7a6209abe2a90d563309f6881f228879bede3 Mon Sep 17 00:00:00 2001 From: spider Date: Wed, 15 Jul 1998 17:03:53 +0000 Subject: [PATCH] Fix for multitude of print statements that SHM is not available when displaying on Hummingbird PC X Display Server --- gfx/src/motif/nsRenderingContextUnix.cpp | 25 +++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/gfx/src/motif/nsRenderingContextUnix.cpp b/gfx/src/motif/nsRenderingContextUnix.cpp index 6385b9c4dbe7..dfa8a3b2b53b 100644 --- a/gfx/src/motif/nsRenderingContextUnix.cpp +++ b/gfx/src/motif/nsRenderingContextUnix.cpp @@ -206,14 +206,25 @@ nsresult nsRenderingContextUnix :: CommonInit() mContext->GetAppUnitsToDevUnits()); #ifdef MITSHM - if (XShmQueryVersion(mRenderingSurface->display, - &shmMajor, - &shmMinor, - &mSupportsSharedPixmaps) != 0) { - mHasSharedMemory = PR_TRUE; - mRenderingSurface->shmImage = nsnull; - mRenderingSurface->shmInfo.shmaddr = nsnull; + // We need to query the extension first using straight XLib since + // the Shared memory invocation prints an error message to stdout + + PRInt32 maj, evt, err; + + if (::XQueryExtension(mRenderingSurface->display, + "MIT-SHM", + &maj, &evt, &err) == True) { + + if (XShmQueryVersion(mRenderingSurface->display, + &shmMajor, + &shmMinor, + &mSupportsSharedPixmaps) != 0) { + + mHasSharedMemory = PR_TRUE; + mRenderingSurface->shmImage = nsnull; + mRenderingSurface->shmInfo.shmaddr = nsnull; + } } #endif