process all outstanding events before shutdown, tdf#104969, tdf#104286, tdf#104399

Change-Id: Id09c3dfdc94c430d5dcb2aebb017f17db80f17e6
Reviewed-on: https://gerrit.libreoffice.org/32486
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Reviewed-on: https://gerrit.libreoffice.org/32667
diff --git a/framework/source/services/desktop.cxx b/framework/source/services/desktop.cxx
index e069905..2ee7336 100644
--- a/framework/source/services/desktop.cxx
+++ b/framework/source/services/desktop.cxx
@@ -63,6 +63,7 @@
#include <rtl/instance.hxx>
#include <vcl/svapp.hxx>
#include <desktop/crashreport.hxx>
#include <vcl/scheduler.hxx>

#include <tools/errinf.hxx>
#include <unotools/configmgr.hxx>
@@ -324,6 +325,10 @@ sal_Bool SAL_CALL Desktop::terminate()
            /* UNSAFE AREA ------------------------------------------------------------------------------------- */

        impl_sendNotifyTerminationEvent();
        {
            SolarMutexGuard aGuard;
            Scheduler::ProcessEventsToIdle();
        }

        if(
            ( bAskQuickStart      ) &&