diff --git a/src/qtquick/views/TabBar_qtquick.cpp b/src/qtquick/views/TabBar_qtquick.cpp index c5d5c2fb..f5dddec1 100644 --- a/src/qtquick/views/TabBar_qtquick.cpp +++ b/src/qtquick/views/TabBar_qtquick.cpp @@ -126,6 +126,9 @@ bool TabBar_qtquick::event(QEvent *ev) m_tabBar->onMousePress(me->pos()); else m_tabBar->onMouseDoubleClick(me->pos()); + + // Don't call base class, it might have been deleted + return true; } break; diff --git a/src/qtquick/views/View_qtquick.cpp b/src/qtquick/views/View_qtquick.cpp index 3ec1a3ea..7c37c959 100644 --- a/src/qtquick/views/View_qtquick.cpp +++ b/src/qtquick/views/View_qtquick.cpp @@ -80,7 +80,14 @@ public: // Finally send the event m_eventTarget->setProperty("cursorPosition", m_eventSource->property("cursorPosition")); + QPointer lifeGuard(this); qGuiApp->sendEvent(m_eventTarget, me); + + if (!lifeGuard) { + // m_eventTarget was deleted, and so was "this" + return true; + } + m_eventTarget->setProperty("cursorPosition", CursorPosition_Undefined); return false;