aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarl Schwan <carl@carlschwan.eu>2024-04-15 15:41:23 +0200
committerCarl Schwan <carl@carlschwan.eu>2024-04-15 15:58:49 +0200
commitffb557ff17d45684aac159762ae4bcc8a04ba573 (patch)
treee1c9c5f082cf3e22ca9a590307771bb4c6022024
parent24c3d54f90bd0898d22757aa62782d4ed2761480 (diff)
Fix crash in QQuickItem::mapToItem
item->window() can be null and this will cause a crash when this happen. This seems to be a recent regression as with Qt 6.6 I never saw this crash and now I see it semi regularly in various applications Change-Id: I2056073bb72df81de8e8a6cbd48aed0478d91121 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
-rw-r--r--src/quick/items/qquickitem.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp
index 5e92403dc2..01f15d2490 100644
--- a/src/quick/items/qquickitem.cpp
+++ b/src/quick/items/qquickitem.cpp
@@ -8750,8 +8750,9 @@ QPointF QQuickItem::mapToItem(const QQuickItem *item, const QPointF &point) cons
{
QPointF p = mapToScene(point);
if (item) {
- if (item->window() != window())
- p = item->window()->mapFromGlobal(window()->mapToGlobal(p));
+ const QQuickWindow *itemWindow = item->window();
+ if (itemWindow != nullptr && itemWindow != window())
+ p = itemWindow->mapFromGlobal(window()->mapToGlobal(p));
p = item->mapFromScene(p);
}