diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2024-10-29 10:21:04 +0100 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2024-11-01 17:07:07 +0100 |
| commit | deb4e08c1212aa3d43f62f9e7211bf69d3be0ada (patch) | |
| tree | 4ff840a1b67bae054571796d0a80384657a5150f /src/widgets/kernel/qwidget.cpp | |
| parent | 733459637e10edca006b0ad9b68299496e1b4ebd (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.cpp | 5 |
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(); } } |
