mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-08 22:45:43 +00:00
54 lines
2.4 KiB
Diff
54 lines
2.4 KiB
Diff
From 15c14584199dc43e4a309fc331f3144009008128 Mon Sep 17 00:00:00 2001
|
|
From: Jonathan Liu <net147@gmail.com>
|
|
Date: Fri, 24 Feb 2012 00:42:34 +1100
|
|
Subject: [PATCH] Revert "Don't rely on mapFromGlobal in
|
|
QGraphicsScenePrivate::itemsAtPosition."
|
|
|
|
This reverts commit 7c0d15a22266a425c9e9ac0120d6774e120fe01e.
|
|
The commit caused a regression whereby tooltips may be shown even if the
|
|
mouse is not over the item if it has the Qt::ItemIgnoresTransformations
|
|
flag and the QGraphicsView had been scaled.
|
|
|
|
Task-number: QTBUG-17517
|
|
Task-number: QTBUG-22663
|
|
Change-Id: Ib7fd788d9712c5e659fe07182f9505a4eb135ab2
|
|
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
|
|
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
|
|
---
|
|
src/gui/graphicsview/qgraphicsscene.cpp | 10 +++++++---
|
|
1 files changed, 7 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp
|
|
index 14c0f3c..d1cdd4f 100644
|
|
--- a/src/gui/graphicsview/qgraphicsscene.cpp
|
|
+++ b/src/gui/graphicsview/qgraphicsscene.cpp
|
|
@@ -1084,7 +1084,7 @@ void QGraphicsScenePrivate::enableMouseTrackingOnViews()
|
|
/*!
|
|
Returns all items for the screen position in \a event.
|
|
*/
|
|
-QList<QGraphicsItem *> QGraphicsScenePrivate::itemsAtPosition(const QPoint &/*screenPos*/,
|
|
+QList<QGraphicsItem *> QGraphicsScenePrivate::itemsAtPosition(const QPoint &screenPos,
|
|
const QPointF &scenePos,
|
|
QWidget *widget) const
|
|
{
|
|
@@ -1093,12 +1093,16 @@ QList<QGraphicsItem *> QGraphicsScenePrivate::itemsAtPosition(const QPoint &/*sc
|
|
if (!view)
|
|
return q->items(scenePos, Qt::IntersectsItemShape, Qt::DescendingOrder, QTransform());
|
|
|
|
- const QRectF pointRect(scenePos, QSizeF(1, 1));
|
|
+ const QRectF pointRect(QPointF(widget->mapFromGlobal(screenPos)), QSizeF(1, 1));
|
|
if (!view->isTransformed())
|
|
return q->items(pointRect, Qt::IntersectsItemShape, Qt::DescendingOrder);
|
|
|
|
const QTransform viewTransform = view->viewportTransform();
|
|
- return q->items(pointRect, Qt::IntersectsItemShape,
|
|
+ if (viewTransform.type() <= QTransform::TxScale) {
|
|
+ return q->items(viewTransform.inverted().mapRect(pointRect), Qt::IntersectsItemShape,
|
|
+ Qt::DescendingOrder, viewTransform);
|
|
+ }
|
|
+ return q->items(viewTransform.inverted().map(pointRect), Qt::IntersectsItemShape,
|
|
Qt::DescendingOrder, viewTransform);
|
|
}
|
|
|
|
--
|
|
1.7.6
|