sfx2/source/notebookbar/SfxNotebookBar.cxx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)
New commits: commit fddfeb653dfd5dd73cbccb4433678d397f092df9 Author: Szymon Kłos <szymon.k...@collabora.com> AuthorDate: Mon Aug 3 09:40:31 2020 +0200 Commit: Szymon Kłos <szymon.k...@collabora.com> CommitDate: Mon Aug 3 10:15:05 2020 +0200 notebookbar: control early init per view Change-Id: I9b743bc6d62256289549cd8002b76bcb918222b0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99986 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Szymon Kłos <szymon.k...@collabora.com> diff --git a/sfx2/source/notebookbar/SfxNotebookBar.cxx b/sfx2/source/notebookbar/SfxNotebookBar.cxx index e15f18cc5764..10c60065641e 100644 --- a/sfx2/source/notebookbar/SfxNotebookBar.cxx +++ b/sfx2/source/notebookbar/SfxNotebookBar.cxx @@ -34,6 +34,7 @@ #include <framework/addonsoptions.hxx> #include <vcl/NotebookBarAddonsMerger.hxx> #include <vector> +#include <map> #include <vcl/WeldedTabbedNotebookbar.hxx> using namespace sfx2; @@ -370,13 +371,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<const void*, bool> bSkippedFirstInit; + if (comphelper::LibreOfficeKit::isActive() + && bSkippedFirstInit.find(pViewShell) == bSkippedFirstInit.end()) { - bSkipFirstInit = false; + bSkippedFirstInit[pViewShell] = true; return false; } @@ -397,7 +401,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()) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits