diff --git a/sfx2/source/notebookbar/SfxNotebookBar.cxx b/sfx2/source/notebookbar/SfxNotebookBar.cxx index dd79e65fa3ec..16a0608f7b30 100644 --- a/sfx2/source/notebookbar/SfxNotebookBar.cxx +++ b/sfx2/source/notebookbar/SfxNotebookBar.cxx @@ -30,6 +30,7 @@ #include #include #include +#include #include using namespace sfx2; @@ -366,13 +367,16 @@ bool SfxNotebookBar::StateMethod(SystemWindow* pSysWindow, if ((!sFile.isEmpty() && bChangedFile) || !pNotebookBar || !pNotebookBar->IsVisible() || bReloadNotebookbar || comphelper::LibreOfficeKit::isActive()) { + const SfxViewShell* pViewShell = SfxViewShell::Current(); + // Notebookbar was loaded too early what caused: // * in LOK: Paste Special feature was incorrectly initialized // Skip first request so Notebookbar will be initialized after document was loaded - static bool bSkipFirstInit = true; - if (comphelper::LibreOfficeKit::isActive() && bSkipFirstInit) + static std::map bSkippedFirstInit; + if (comphelper::LibreOfficeKit::isActive() + && bSkippedFirstInit.find(pViewShell) == bSkippedFirstInit.end()) { - bSkipFirstInit = false; + bSkippedFirstInit[pViewShell] = true; return false; } @@ -393,7 +397,6 @@ bool SfxNotebookBar::StateMethod(SystemWindow* pSysWindow, pNotebookBar = pSysWindow->GetNotebookBar(); pNotebookBar->Show(); - const SfxViewShell* pViewShell = SfxViewShell::Current(); bool hasWeldedWrapper = m_pNotebookBarWeldedWrapper.find(pViewShell) != m_pNotebookBarWeldedWrapper.end(); if ((!hasWeldedWrapper || bReloadNotebookbar) && pNotebookBar->IsWelded())