From eb11f67dd9d61e0d83506bce0f700330cba4e434 Mon Sep 17 00:00:00 2001
From: Friedemann Kleint <Friedemann.Kleint@digia.com>
Date: Tue, 30 Apr 2013 12:44:59 +0200
Subject: [PATCH] Set geometry set by QPlatformWindow::initialGeometry() on
 widget.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Task-number: QTBUG-30855

Change-Id: I15f3dfa0b493874671711cce2190d0710b368796
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
---
 src/widgets/kernel/qwidget_qpa.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/widgets/kernel/qwidget_qpa.cpp b/src/widgets/kernel/qwidget_qpa.cpp
index a4da98815be..6547bfdf768 100644
--- a/src/widgets/kernel/qwidget_qpa.cpp
+++ b/src/widgets/kernel/qwidget_qpa.cpp
@@ -543,6 +543,13 @@ void QWidgetPrivate::show_sys()
 #endif
         invalidateBuffer(q->rect());
         window->setVisible(true);
+        // Was the window moved by the Window system or QPlatformWindow::initialGeometry() ?
+        if (window->isTopLevel()) {
+            const QPoint crectTopLeft = q->data->crect.topLeft();
+            const QPoint windowTopLeft = window->geometry().topLeft();
+            if (crectTopLeft == QPoint(0, 0) && windowTopLeft != crectTopLeft)
+                q->data->crect.moveTopLeft(windowTopLeft);
+        }
     }
 }
 
-- 
GitLab