summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBradley T. Hughes <bradley.hughes@nokia.com>2009-12-11 14:18:37 (GMT)
committerBradley T. Hughes <bradley.hughes@nokia.com>2009-12-11 14:18:37 (GMT)
commitf2321e217976042403adfb74bffa7dceffa6febd (patch)
treef0af69c7d362ac3a5e1c9b090053917c0a19c8a4
parent38181f227d3c35a543b1df5b5440ae3bac3b6513 (diff)
downloadQt-f2321e217976042403adfb74bffa7dceffa6febd.zip
Qt-f2321e217976042403adfb74bffa7dceffa6febd.tar.gz
Qt-f2321e217976042403adfb74bffa7dceffa6febd.tar.bz2
Don't react to X errors on displays that are not the Qt display.
Even though Qt doesn't support multiple displays, it is possible for people to have code that uses multiple displays (either by using Xlib directly or when integrating with another toolkit). Task-number: QTBUG-3337
-rw-r--r--src/gui/kernel/qapplication_x11.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gui/kernel/qapplication_x11.cpp b/src/gui/kernel/qapplication_x11.cpp
index b71ae73..eb35c10 100644
--- a/src/gui/kernel/qapplication_x11.cpp
+++ b/src/gui/kernel/qapplication_x11.cpp
@@ -614,6 +614,11 @@ static int (*original_xio_errhandler)(Display *dpy);
static int qt_x_errhandler(Display *dpy, XErrorEvent *err)
{
+ if (X11->display != dpy) {
+ // only handle X errors for our display
+ return 0;
+ }
+
switch (err->error_code) {
case BadAtom:
if (err->request_code == 20 /* X_GetProperty */