diff options
-rw-r--r-- | src/plugins/platforms/xcb/qxcbwindow.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp index 63894373b8..433d6d5948 100644 --- a/src/plugins/platforms/xcb/qxcbwindow.cpp +++ b/src/plugins/platforms/xcb/qxcbwindow.cpp @@ -1584,6 +1584,16 @@ void QXcbWindow::handleConfigureNotifyEvent(const xcb_configure_notify_event_t * QPlatformWindow::setGeometry(rect); QWindowSystemInterface::handleGeometryChange(window(), rect); + if (!m_screen->availableGeometry().intersects(rect)) { + Q_FOREACH (QPlatformScreen* screen, m_screen->virtualSiblings()) { + if (screen->availableGeometry().intersects(rect)) { + m_screen = static_cast<QXcbScreen*>(screen); + QWindowSystemInterface::handleWindowScreenChanged(window(), m_screen->QPlatformScreen::screen()); + break; + } + } + } + m_configureNotifyPending = false; if (m_deferredExpose) { |