From cae29925399133e2c0991071708d8689d8b98be9 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sat, 12 Jan 2013 19:30:50 -0600 Subject: Automated update from Qt3 --- src/kernel/qapplication_x11.cpp | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/kernel/qapplication_x11.cpp b/src/kernel/qapplication_x11.cpp index 8602b562..68eaa904 100644 --- a/src/kernel/qapplication_x11.cpp +++ b/src/kernel/qapplication_x11.cpp @@ -3472,13 +3472,26 @@ int TQApplication::x11ProcessEvent( XEvent* event ) // update the size for desktop widget int scr = XRRRootToScreen( appDpy, event->xany.window ); TQWidget *w = desktop()->screen( scr ); - TQSize oldSize( w->size() ); - w->crect.setWidth( DisplayWidth( appDpy, scr ) ); - w->crect.setHeight( DisplayHeight( appDpy, scr ) ); - if ( w->size() != oldSize ) { - TQResizeEvent e( w->size(), oldSize ); - TQApplication::sendEvent( w, &e ); - emit desktop()->resized( scr ); + + if (w) { + int widgetScr = -1; + // make sure the specified widget is on the same screen that received the XRandR event + XWindowAttributes widgetAttr; + XGetWindowAttributes(appDpy, w->winId(), &widgetAttr); + if (widgetAttr.screen) { + widgetScr = XScreenNumberOfScreen(widgetAttr.screen); + } + + if ((widgetScr < 0) || (widgetScr == scr)) { + TQSize oldSize( w->size() ); + w->crect.setWidth( DisplayWidth( appDpy, scr ) ); + w->crect.setHeight( DisplayHeight( appDpy, scr ) ); + if ( w->size() != oldSize ) { + TQResizeEvent e( w->size(), oldSize ); + TQApplication::sendEvent( w, &e ); + emit desktop()->resized( scr ); + } + } } } #endif // QT_NO_XRANDR -- cgit v1.2.3