Darrell Anderson 13 years ago
commit 1bcaf7bfac

@ -3462,6 +3462,27 @@ int QApplication::x11ProcessEvent( XEvent* event )
return 0; return 0;
} }
#ifndef QT_NO_XRANDR
// XRandR doesn't care if Qt doesn't know about the widget, so handle XRandR stuff before the !widget check below
if (event->type == xrandr_eventbase + RRScreenChangeNotify
|| ( event->type == ConfigureNotify && event->xconfigure.window == QPaintDevice::x11AppRootWindow())) {
// update Xlib internals with the latest screen configuration
XRRUpdateConfiguration(event);
// update the size for desktop widget
int scr = XRRRootToScreen( appDpy, event->xany.window );
QWidget *w = desktop()->screen( scr );
QSize oldSize( w->size() );
w->crect.setWidth( DisplayWidth( appDpy, scr ) );
w->crect.setHeight( DisplayHeight( appDpy, scr ) );
if ( w->size() != oldSize ) {
QResizeEvent e( w->size(), oldSize );
QApplication::sendEvent( w, &e );
emit desktop()->resized( scr );
}
}
#endif // QT_NO_XRANDR
if ( !widget ) { // don't know this windows if ( !widget ) { // don't know this windows
QWidget* popup = QApplication::activePopupWidget(); QWidget* popup = QApplication::activePopupWidget();
if ( popup ) { if ( popup ) {
@ -3512,26 +3533,6 @@ int QApplication::x11ProcessEvent( XEvent* event )
} }
#endif #endif
#ifndef QT_NO_XRANDR
if (event->type == xrandr_eventbase + RRScreenChangeNotify
|| ( event->type == ConfigureNotify && event->xconfigure.window == QPaintDevice::x11AppRootWindow())) {
// update Xlib internals with the latest screen configuration
XRRUpdateConfiguration(event);
// update the size for desktop widget
int scr = XRRRootToScreen( appDpy, event->xany.window );
QWidget *w = desktop()->screen( scr );
QSize oldSize( w->size() );
w->crect.setWidth( DisplayWidth( appDpy, scr ) );
w->crect.setHeight( DisplayHeight( appDpy, scr ) );
if ( w->size() != oldSize ) {
QResizeEvent e( w->size(), oldSize );
QApplication::sendEvent( w, &e );
emit desktop()->resized( scr );
}
}
#endif // QT_NO_XRANDR
switch ( event->type ) { switch ( event->type ) {
case ButtonRelease: // mouse event case ButtonRelease: // mouse event

Loading…
Cancel
Save