summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--desktop/qa/data/2slides.odpbin10888 -> 10993 bytes
-rw-r--r--include/sfx2/childwin.hxx6
-rw-r--r--sc/source/ui/app/scdll.cxx5
-rw-r--r--sd/source/ui/app/sddll.cxx5
-rw-r--r--sfx2/source/appl/workwin.cxx3
-rw-r--r--sw/source/uibase/app/swmodule.cxx5
6 files changed, 18 insertions, 6 deletions
diff --git a/desktop/qa/data/2slides.odp b/desktop/qa/data/2slides.odp
index 8be376f5b548..0e3f8758ffc9 100644
--- a/desktop/qa/data/2slides.odp
+++ b/desktop/qa/data/2slides.odp
Binary files differ
diff --git a/include/sfx2/childwin.hxx b/include/sfx2/childwin.hxx
index 68279262d11d..054f1ff0a0f5 100644
--- a/include/sfx2/childwin.hxx
+++ b/include/sfx2/childwin.hxx
@@ -47,13 +47,13 @@ enum class SfxChildWindowFlags
TASK = 0x10, // ChildWindow inside the Task
CANTGETFOCUS = 0x20, // ChildWindow can not get focus
ALWAYSAVAILABLE = 0x40, // ChildWindow is never disabled
- NEVERHIDE = 0x80 // ChildWindow is can always made
- // visible/is visible
+ NEVERHIDE = 0x80, // ChildWindow is always visible
+ NEVERCLONE = 0x100, // ChildWindow is not recreated in new view
};
namespace o3tl
{
- template<> struct typed_flags<SfxChildWindowFlags> : is_typed_flags<SfxChildWindowFlags, 0xf5> {};
+ template<> struct typed_flags<SfxChildWindowFlags> : is_typed_flags<SfxChildWindowFlags, 0x1f5> {};
}
diff --git a/sc/source/ui/app/scdll.cxx b/sc/source/ui/app/scdll.cxx
index 59faba24ece2..45129b81b089 100644
--- a/sc/source/ui/app/scdll.cxx
+++ b/sc/source/ui/app/scdll.cxx
@@ -22,6 +22,7 @@
#include <svx/fmobjfac.hxx>
#include <svx/objfac3d.hxx>
+#include <comphelper/lok.hxx>
#include <sfx2/sidebar/SidebarChildWindow.hxx>
#include <sfx2/app.hxx>
#include <avmedia/mediatoolbox.hxx>
@@ -238,7 +239,9 @@ void ScDLL::Init()
SvxHlinkDlgWrapper ::RegisterChildWindow(false, pMod);
SvxFontWorkChildWindow ::RegisterChildWindow(false, pMod);
SvxIMapDlgChildWindow ::RegisterChildWindow(false, pMod);
- ScSpellDialogChildWindow ::RegisterChildWindow(false, pMod);
+ ScSpellDialogChildWindow::RegisterChildWindow(
+ false, pMod, comphelper::LibreOfficeKit::isActive() ? SfxChildWindowFlags::NEVERCLONE
+ : SfxChildWindowFlags::NONE);
ScValidityRefChildWin::RegisterChildWindow(false, pMod);
sc::SearchResultsDlgWrapper::RegisterChildWindow(false, pMod);
diff --git a/sd/source/ui/app/sddll.cxx b/sd/source/ui/app/sddll.cxx
index 8098c5d6c31c..55d306e53925 100644
--- a/sd/source/ui/app/sddll.cxx
+++ b/sd/source/ui/app/sddll.cxx
@@ -84,6 +84,7 @@
#include <sfx2/emojipopup.hxx>
#include <sfx2/charmappopup.hxx>
#include <sfx2/sidebar/SidebarChildWindow.hxx>
+#include <comphelper/lok.hxx>
#include <sdabstdlg.hxx>
#include <sdfilter.hxx>
#include <sdmod.hxx>
@@ -165,7 +166,9 @@ void SdDLL::RegisterControllers(SdModule* pMod)
SvxBmpMaskChildWindow::RegisterChildWindow(false, pMod);
SvxIMapDlgChildWindow::RegisterChildWindow(false, pMod);
SvxHlinkDlgWrapper::RegisterChildWindow(false, pMod);
- ::sd::SpellDialogChildWindow::RegisterChildWindow(false, pMod);
+ ::sd::SpellDialogChildWindow::RegisterChildWindow(
+ false, pMod, comphelper::LibreOfficeKit::isActive() ? SfxChildWindowFlags::NEVERCLONE
+ : SfxChildWindowFlags::NONE);
#if HAVE_FEATURE_AVMEDIA
::avmedia::MediaPlayer::RegisterChildWindow(false, pMod);
#endif
diff --git a/sfx2/source/appl/workwin.cxx b/sfx2/source/appl/workwin.cxx
index cb9680b94ae0..3c505a364c07 100644
--- a/sfx2/source/appl/workwin.cxx
+++ b/sfx2/source/appl/workwin.cxx
@@ -1283,6 +1283,9 @@ void SfxWorkWindow::UpdateChildWindows_Impl()
else
bCreate = true;
+ if (pCW->aInfo.nFlags & SfxChildWindowFlags::NEVERCLONE)
+ pCW->bCreate = bCreate = false; // Don't create and remember that we haven't created.
+
// Currently, no window here, but it is enabled; windows
// Create window and if possible theContext
if ( bCreate )
diff --git a/sw/source/uibase/app/swmodule.cxx b/sw/source/uibase/app/swmodule.cxx
index 0ec62470c232..8da92e722fb5 100644
--- a/sw/source/uibase/app/swmodule.cxx
+++ b/sw/source/uibase/app/swmodule.cxx
@@ -59,6 +59,7 @@
#include <com/sun/star/scanner/ScannerManager.hpp>
#include <com/sun/star/linguistic2/LanguageGuessing.hpp>
#include <ooo/vba/XSinkCaller.hpp>
+#include <comphelper/lok.hxx>
#include <comphelper/processfactory.hxx>
#include <docsh.hxx>
#include <swmodule.hxx>
@@ -347,7 +348,9 @@ void SwDLL::RegisterControls()
SwInsertAuthMarkWrapper::RegisterChildWindow( false, pMod );
SwWordCountWrapper::RegisterChildWindow( false, pMod );
SvxRubyChildWindow::RegisterChildWindow( false, pMod);
- SwSpellDialogChildWindow::RegisterChildWindow(false, pMod);
+ SwSpellDialogChildWindow::RegisterChildWindow(
+ false, pMod, comphelper::LibreOfficeKit::isActive() ? SfxChildWindowFlags::NEVERCLONE
+ : SfxChildWindowFlags::NONE);
CharmapPopup::RegisterControl(SID_CHARMAP_CONTROL, pMod );