summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2020-08-03 09:40:31 +0200
committerSzymon Kłos <szymon.klos@collabora.com>2020-08-04 14:58:34 +0200
commitadb901ca11afa5a153ecd433375b9ab1dfc2fd03 (patch)
tree2c02606fc694020af4ac137ecaa025f71556ae5b /sfx2
parent7959953e990b9fc10dbffd5a92553037d2b419c2 (diff)
notebookbar: control early init per view
Change-Id: I9b743bc6d62256289549cd8002b76bcb918222b0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99986 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> (cherry picked from commit fddfeb653dfd5dd73cbccb4433678d397f092df9) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99921 Tested-by: Jenkins
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/source/notebookbar/SfxNotebookBar.cxx11
1 files changed, 7 insertions, 4 deletions
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 <framework/addonsoptions.hxx>
#include <vcl/NotebookBarAddonsMerger.hxx>
#include <vector>
+#include <map>
#include <vcl/WeldedTabbedNotebookbar.hxx>
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<const void*, bool> 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())