summaryrefslogtreecommitdiffstats
path: root/qtinterface/tqpaintdevice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qtinterface/tqpaintdevice.cpp')
-rw-r--r--qtinterface/tqpaintdevice.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/qtinterface/tqpaintdevice.cpp b/qtinterface/tqpaintdevice.cpp
index 20f41cc..d97a3d4 100644
--- a/qtinterface/tqpaintdevice.cpp
+++ b/qtinterface/tqpaintdevice.cpp
@@ -24,6 +24,24 @@ Boston, MA 02110-1301, USA.
#ifdef USE_QT4
+// the following is necessary to work around breakage in many versions
+// of XFree86's Xlib.h still in use
+// ### which versions?
+#if defined(_XLIB_H_) // crude hack, but...
+#error "cannot include <X11/Xlib.h> before this file"
+#endif
+#define XRegisterIMInstantiateCallback qt_XRegisterIMInstantiateCallback
+#define XUnregisterIMInstantiateCallback qt_XUnregisterIMInstantiateCallback
+#define XSetIMValues qt_XSetIMValues
+#include <X11/Xlib.h>
+#undef XRegisterIMInstantiateCallback
+#undef XUnregisterIMInstantiateCallback
+#undef XSetIMValues
+
+#include <X11/Xutil.h>
+#include <X11/Xos.h>
+#include <X11/Xatom.h>
+
/*!
Returns the window system handle of the paint device for XRender
support. Use of this function is not portable. This function will
@@ -46,6 +64,7 @@ static GC* app_gc_tmp_m = 0; // temporary GC (monochrome)
static GC create_gc( int scrn, bool monochrome )
{
GC gc;
+ Display *appDpy = QX11Info::display();
if ( monochrome ) {
Pixmap pm = XCreatePixmap( appDpy, RootWindow( appDpy, scrn ), 8, 8, 1 );
gc = XCreateGC( appDpy, pm, 0, 0 );