diff --git a/src/gui/accessible/qaccessible.h b/src/gui/accessible/qaccessible.h index 093a48e211..c47ff41207 100644 --- a/src/gui/accessible/qaccessible.h +++ b/src/gui/accessible/qaccessible.h @@ -715,6 +715,7 @@ protected: QAccessible::Id m_uniqueId; }; + friend class QTestAccessibility; }; class Q_GUI_EXPORT QAccessibleStateChangeEvent :public QAccessibleEvent diff --git a/src/testlib/qtestaccessible.h b/src/testlib/qtestaccessible.h index bd77ee77a1..8fe5fba338 100644 --- a/src/testlib/qtestaccessible.h +++ b/src/testlib/qtestaccessible.h @@ -185,7 +185,16 @@ private: static void updateHandler(QAccessibleEvent *event) { - eventList().append(copyEvent(event)); + auto ev = copyEvent(event); + if (ev->object()) { + QObject::connect(ev->object(), &QObject::destroyed, [&, ev](){ + auto index= eventList().indexOf(ev); + if (index == -1) + return; + eventList().at(index)->m_object = nullptr; + }); + } + eventList().append(ev); } static QAccessibleEvent *copyEvent(QAccessibleEvent *event) {