summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/app/svmain.cxx3
-rw-r--r--vcl/source/window/floatwin.cxx2
-rw-r--r--vcl/source/window/window.cxx8
3 files changed, 10 insertions, 3 deletions
diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx
index f3bcac658e1a..3fd6d86b1bc0 100644
--- a/vcl/source/app/svmain.cxx
+++ b/vcl/source/app/svmain.cxx
@@ -416,6 +416,9 @@ VCLUnoWrapperDeleter::disposing(lang::EventObject const& /* rSource */)
void DeInitVCL()
{
+ // The LOK Windows map container should be empty
+ assert(vcl::Window::IsLOKWindowsEmpty());
+
//rhbz#1444437, when using LibreOffice like a library you can't realistically
//tear everything down and recreate them on the next call, there's too many
//(c++) singletons that point to stuff that gets deleted during shutdown
diff --git a/vcl/source/window/floatwin.cxx b/vcl/source/window/floatwin.cxx
index 72dff4985c34..8257aeea7d7d 100644
--- a/vcl/source/window/floatwin.cxx
+++ b/vcl/source/window/floatwin.cxx
@@ -202,6 +202,8 @@ FloatingWindow::~FloatingWindow()
void FloatingWindow::dispose()
{
+ ReleaseLOKNotifier();
+
if (mpImplData)
{
if( mbPopupModeCanceled )
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 20187261ee22..6d5a73fc8f62 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -3178,9 +3178,6 @@ namespace {
LOKWindowsMap& GetLOKWindowsMap()
{
- // never use this in the desktop case
- assert(comphelper::LibreOfficeKit::isActive());
-
// Map to remember the LOKWindowId <-> Window binding.
static std::unique_ptr<LOKWindowsMap> s_pLOKWindowsMap;
@@ -3225,6 +3222,11 @@ VclPtr<Window> Window::FindLOKWindow(vcl::LOKWindowId nWindowId)
return VclPtr<Window>();
}
+bool Window::IsLOKWindowsEmpty()
+{
+ return GetLOKWindowsMap().empty();
+}
+
void Window::ReleaseLOKNotifier()
{
// unregister the LOK window binding