xcb: Don't try to detect cases where the WM restricts geometry changes

This caused issues in upstream tests that didn't expect to have their
geometry requests not being respected by the WM.

Task-number: QTBUG-49912
Change-Id: Iec99f341d81488de6026f04c99dff45a0d3f8587
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
This commit is contained in:
Tor Arne Vestbø 2015-12-14 14:29:22 +01:00 committed by Sean Harmer
parent 7f92edb7ac
commit 980fd570cd

View File

@ -2003,14 +2003,11 @@ void QXcbWindow::handleConfigureNotifyEvent(const xcb_configure_notify_event_t *
// be queried in the resize event.
QPlatformWindow::setGeometry(actualGeometry);
// As we're delivering the geometry change through QPA in n async fashion we can't
// pass on the current geometry of the QWindowPrivate, as that may have not been
// updated yet by a geometry change that's still in the QPA event queue. Instead
// we fall back to the default argument value of QRect(), which will result in
// QGuiApplication looking up the previous geometry from QWindowPrivate, but this
// time in sync with the even delivery/processing.
QWindowSystemInterface::handleGeometryChange(window(), actualGeometry,
requestedGeometry != actualGeometry ? requestedGeometry : QRect());
// FIXME: In the case of the requestedGeometry not matching the actualGeometry due
// to e.g. the window manager applying restrictions to the geometry, the application
// will never see a move/resize event if the actualGeometry is the same as the current
// geometry, and may think the requested geometry was fulfilled.
QWindowSystemInterface::handleGeometryChange(window(), actualGeometry);
// QPlatformScreen::screen() is updated asynchronously, so we can't compare it
// with the newScreen. Just send the WindowScreenChanged event and QGuiApplication