diff --git a/src/dde-file-manager-lib/interfaces/dfmeventdispatcher.cpp b/src/dde-file-manager-lib/interfaces/dfmeventdispatcher.cpp index b6f62e98a..078205148 100644 --- a/src/dde-file-manager-lib/interfaces/dfmeventdispatcher.cpp +++ b/src/dde-file-manager-lib/interfaces/dfmeventdispatcher.cpp @@ -126,8 +126,14 @@ void DFMEventFuture::operator =(const DFMEventFuture &other) } namespace DFMEventDispatcherData { -static QList eventHandler; -static QList eventFilter; +QList& eventHandler() { + static QList handler; + return handler; +} +QList& eventFilter() { + static QList handler; + return handler; +} Q_GLOBAL_STATIC(QThreadPool, threadPool) } @@ -154,7 +160,7 @@ QVariant DFMEventDispatcher::processEvent(const QSharedPointer &event, QVariant result; - for (DFMAbstractEventHandler *handler : DFMEventDispatcherData::eventFilter) { + for (DFMAbstractEventHandler *handler : DFMEventDispatcherData::eventFilter()) { if (!handler) continue; if (handler->fmEventFilter(event, target, &result)) @@ -164,7 +170,7 @@ QVariant DFMEventDispatcher::processEvent(const QSharedPointer &event, if (target) { target->fmEvent(event, &result); } else { - for (DFMAbstractEventHandler *handler : DFMEventDispatcherData::eventHandler) { + for (DFMAbstractEventHandler *handler : DFMEventDispatcherData::eventHandler()) { if (handler->fmEvent(event, &result)) return result; } @@ -197,14 +203,14 @@ QVariant DFMEventDispatcher::processEventWithEventLoop(const QSharedPointer