diff --git a/plugins/contextbrowser/contextbrowserview.cpp b/plugins/contextbrowser/contextbrowserview.cpp --- a/plugins/contextbrowser/contextbrowserview.cpp +++ b/plugins/contextbrowser/contextbrowserview.cpp @@ -185,8 +185,14 @@ return QWidget::event(event); } -void ContextBrowserView::showEvent(QShowEvent* event) { - DUChainReadLocker lock(DUChain::lock()); +void ContextBrowserView::showEvent(QShowEvent* event) +{ + DUChainReadLocker lock(DUChain::lock(), 1000); + if (!lock.locked()) { + QWidget::showEvent(event); + return; + } + TopDUContext* top = m_lastUsedTopContext.data(); if(top && m_navigationWidgetDeclaration.isValid() && m_navigationWidgetDeclaration.getDeclaration(top)) { if(top) {