summaryrefslogtreecommitdiff
path: root/vcl/source/app
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2023-12-04 15:08:26 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2023-12-04 21:49:03 +0100
commit8472365774b7471e96a025f424a6c7eb7b02db26 (patch)
tree81cd5e196e3d9dc2f407344f75d83a259c2e87d5 /vcl/source/app
parent7059a1858ddb044c5f3f0c8e0386d3e1d9dd2b5f (diff)
Avoid clipboard messages after Scheduler::ImplDeInitScheduler
When running UITests on Windows with parallelism, often there are clipboard "content changed" messages that fail the assertion in Scheduler::ImplDeInitScheduler. This is because the clipboard is only uninitialized after the scheduler de-init; and even then, the respective threads are not stopped yet. Make sure that clipboard listeners are stopped before calling the Scheduler::ImplDeInitScheduler in DeInitVCL. Change-Id: I37918cdc565c7f1b3bd4f46e71c55bb5a807db6b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160308 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'vcl/source/app')
-rw-r--r--vcl/source/app/svmain.cxx18
1 files changed, 9 insertions, 9 deletions
diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx
index 71dcca106a57..3aa2cecf4ec8 100644
--- a/vcl/source/app/svmain.cxx
+++ b/vcl/source/app/svmain.cxx
@@ -507,15 +507,6 @@ void DeInitVCL()
// as this processes all pending events in debug builds.
ImplGetSystemDependentDataManager().flushAll();
- Scheduler::ImplDeInitScheduler();
-
- pSVData->mpWinData->maMsgBoxImgList.clear();
- pSVData->maCtrlData.maCheckImgList.clear();
- pSVData->maCtrlData.maRadioImgList.clear();
- pSVData->maCtrlData.moDisclosurePlus.reset();
- pSVData->maCtrlData.moDisclosureMinus.reset();
- pSVData->mpDefaultWin.disposeAndClear();
-
#if defined _WIN32
// See GetSystemClipboard (vcl/source/treelist/transfer2.cxx):
if (auto const comp = css::uno::Reference<css::lang::XComponent>(
@@ -527,6 +518,15 @@ void DeInitVCL()
pSVData->m_xSystemClipboard.clear();
#endif
+ Scheduler::ImplDeInitScheduler();
+
+ pSVData->mpWinData->maMsgBoxImgList.clear();
+ pSVData->maCtrlData.maCheckImgList.clear();
+ pSVData->maCtrlData.maRadioImgList.clear();
+ pSVData->maCtrlData.moDisclosurePlus.reset();
+ pSVData->maCtrlData.moDisclosureMinus.reset();
+ pSVData->mpDefaultWin.disposeAndClear();
+
#ifndef NDEBUG
DbgGUIDeInitSolarMutexCheck();
#endif