From: Thiago Macieira Date: Mon, 14 May 2012 12:10:45 +0000 (+0200) Subject: Restore the QEvent::d pointer to null after we're done using it X-Git-Tag: 071012110112~1005 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=44724508c97445e308eb86b6e193ed50da13caee;p=profile%2Fivi%2Fqtbase.git Restore the QEvent::d pointer to null after we're done using it Change-Id: I2fd6ebd80bf47456d74e939d49bff4ac9f199e8b Reviewed-by: Bradley T. Hughes Reviewed-by: Lars Knoll Reviewed-by: Olivier Goffart --- diff --git a/src/widgets/graphicsview/qgraphicsview.cpp b/src/widgets/graphicsview/qgraphicsview.cpp index 3629341..17212ba 100644 --- a/src/widgets/graphicsview/qgraphicsview.cpp +++ b/src/widgets/graphicsview/qgraphicsview.cpp @@ -271,6 +271,7 @@ static const int QGRAPHICSVIEW_PREALLOC_STYLE_OPTIONS = 503; // largest prime < #include #include #include +#include #include #include #include @@ -2777,7 +2778,7 @@ bool QGraphicsView::viewportEvent(QEvent *event) QApplication::sendEvent(d->scene, &windowDeactivate); } break; - case QEvent::Leave: + case QEvent::Leave: { // ### This is a temporary fix for until we get proper mouse grab // events. activeMouseGrabberItem should be set to 0 if we lose the // mouse grab. @@ -2790,9 +2791,11 @@ bool QGraphicsView::viewportEvent(QEvent *event) d->useLastMouseEvent = false; // a hack to pass a viewport pointer to the scene inside the leave event Q_ASSERT(event->d == 0); + QScopedValueRollback rb(event->d); event->d = reinterpret_cast(viewport()); QApplication::sendEvent(d->scene, event); break; + } #ifndef QT_NO_TOOLTIP case QEvent::ToolTip: { QHelpEvent *toolTip = static_cast(event);