summaryrefslogtreecommitdiffstats
path: root/src/widgets/kernel/qwidget.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2024-10-29 10:21:04 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2024-11-01 17:07:07 +0100
commitdeb4e08c1212aa3d43f62f9e7211bf69d3be0ada (patch)
tree4ff840a1b67bae054571796d0a80384657a5150f /src/widgets/kernel/qwidget.cpp
parent733459637e10edca006b0ad9b68299496e1b4ebd (diff)
QWidget::mapTo/FromGlobal(): Fix transformation in case of QGraphicsItem::ItemIgnoresTransformations
Extract a helper returning the transform from QGraphicsViewPrivate::mapToViewRect() and use that. Fixes: QTBUG-128913 Pick-to: 6.8 Change-Id: Idc31f653c23cd7d0e5bbb8af560f010f01ac4d4b Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Diffstat (limited to 'src/widgets/kernel/qwidget.cpp')
-rw-r--r--src/widgets/kernel/qwidget.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index 9b2348cad96..23e543ee3ee 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -60,6 +60,7 @@
#include "QtWidgets/qgraphicsproxywidget.h"
#include "QtWidgets/qgraphicsscene.h"
#include "private/qgraphicsproxywidget_p.h"
+#include "private/qgraphicsview_p.h"
#endif
#include "QtWidgets/qabstractscrollarea.h"
#include "private/qabstractscrollarea_p.h"
@@ -12682,8 +12683,8 @@ static MapToGlobalTransformResult mapToGlobalTransform(const QWidget *w)
if (const QGraphicsScene *scene = qgpw->scene()) {
const QList <QGraphicsView *> views = scene->views();
if (!views.isEmpty()) {
- result.transform *= qgpw->sceneTransform();
- result.transform *= views.first()->viewportTransform();
+ auto *viewP = static_cast<QGraphicsViewPrivate *>(qt_widget_private(views.constFirst()));
+ result.transform *= viewP->mapToViewTransform(qgpw);
w = views.first()->viewport();
}
}