diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-05-11 12:33:43 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-05-11 11:24:48 +0000 |
commit | 55aef74a8ebd65d2178bd3a2536ca44dcaecd46e (patch) | |
tree | 5213c22897bbe6e7bfa2b95fe2e6247236601f20 /tests | |
parent | 8b2e819ab2246d01eb564a52aa08bdf1d55c02c2 (diff) |
QQuickPopup: emit xChanged() and yChanged() when _local_ coords change
Emitting xChanged() and yChanged() when the (scene) geometry of the
internal popup item changes is not sufficient, because QQuickPopup
operates in the parent item's coordinate space. When a popup is pushed
inside the window margins, the local coordinates change, but the global
coordinates don't.
Change-Id: I296f1ecd1d1e882c2ff730a2bf68641bd57cbb4f
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/controls/data/tst_popup.qml | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/auto/controls/data/tst_popup.qml b/tests/auto/controls/data/tst_popup.qml index 156bc652..a681b2f9 100644 --- a/tests/auto/controls/data/tst_popup.qml +++ b/tests/auto/controls/data/tst_popup.qml @@ -334,6 +334,24 @@ TestCase { compare(xSpy.count, 1) compare(ySpy.count, 1) + // re-parent and reset the position + control.parent = rect.createObject(testCase, {color: "red", width: 100, height: 100}) + control.x = 0 + control.y = 0 + compare(xSpy.count, 2) + compare(ySpy.count, 2) + + // moving parent outside margins triggers change notifiers + control.parent.x = -50 + compare(control.x, 50 + control.leftMargin) + compare(xSpy.count, 3) + compare(ySpy.count, 2) + + control.parent.y = -60 + compare(control.y, 60 + control.topMargin) + compare(xSpy.count, 3) + compare(ySpy.count, 3) + control.destroy() } |