diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2023-12-04 15:08:26 +0300 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2023-12-04 21:49:03 +0100 |
commit | 8472365774b7471e96a025f424a6c7eb7b02db26 (patch) | |
tree | 81cd5e196e3d9dc2f407344f75d83a259c2e87d5 /vcl/source/app | |
parent | 7059a1858ddb044c5f3f0c8e0386d3e1d9dd2b5f (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.cxx | 18 |
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 |