Windows QPA: Don't send geometry change after window creation for maximized/fullscreen.
For these states, geometry change will be sent from the code called by setWindowState(); the geometry obtained immediately after window creation is then no longer valid. Task-number: QTBUG-52231 Change-Id: Ia7cbe95e73c5dd4126bb63d448b83f2cab6a53a1 Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
This commit is contained in:
parent
e8e09918c0
commit
08a62af7c5
@ -318,10 +318,14 @@ QPlatformWindow *QWindowsIntegration::createPlatformWindow(QWindow *window) cons
|
|||||||
|
|
||||||
if (requested.flags != obtained.flags)
|
if (requested.flags != obtained.flags)
|
||||||
window->setFlags(obtained.flags);
|
window->setFlags(obtained.flags);
|
||||||
// Trigger geometry/screen change signals of QWindow.
|
// Trigger geometry change (unless it has a special state in which case setWindowState()
|
||||||
|
// will send the message) and screen change signals of QWindow.
|
||||||
if ((obtained.flags & Qt::Desktop) != Qt::Desktop) {
|
if ((obtained.flags & Qt::Desktop) != Qt::Desktop) {
|
||||||
if (requested.geometry != obtained.geometry)
|
const Qt::WindowState state = window->windowState();
|
||||||
|
if (state != Qt::WindowMaximized && state != Qt::WindowFullScreen
|
||||||
|
&& requested.geometry != obtained.geometry) {
|
||||||
QWindowSystemInterface::handleGeometryChange(window, obtained.geometry);
|
QWindowSystemInterface::handleGeometryChange(window, obtained.geometry);
|
||||||
|
}
|
||||||
QPlatformScreen *screen = result->screenForGeometry(obtained.geometry);
|
QPlatformScreen *screen = result->screenForGeometry(obtained.geometry);
|
||||||
if (screen && result->screen() != screen)
|
if (screen && result->screen() != screen)
|
||||||
QWindowSystemInterface::handleWindowScreenChanged(window, screen->screen());
|
QWindowSystemInterface::handleWindowScreenChanged(window, screen->screen());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user