sw/source/uibase/app/apphdl.cxx | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+)
New commits: commit cbf3e0d241f9fa3a9ffddd52acdbe03958be83da Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Thu Nov 22 11:34:00 2018 +0000 Commit: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> CommitDate: Tue Nov 27 12:42:28 2018 +0100 tdf#121607 defer other requests until password dialog is dismissed Change-Id: I82b308f482cc5eb40a00afd01a6848afc3fb8ab1 Reviewed-on: https://gerrit.libreoffice.org/63796 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> diff --git a/sw/source/uibase/app/apphdl.cxx b/sw/source/uibase/app/apphdl.cxx index 804e358418ef..8bd7c3b62a63 100644 --- a/sw/source/uibase/app/apphdl.cxx +++ b/sw/source/uibase/app/apphdl.cxx @@ -216,9 +216,27 @@ void SwModule::StateOther(SfxItemSet &rSet) { SwView* pView = ::GetActiveView(); std::shared_ptr<SwMailMergeConfigItem> xConfigItem; + bool bUnLockDispatcher = false; + SfxDispatcher* pDispatcher = nullptr; if (pView) + { xConfigItem = pView->EnsureMailMergeConfigItem(); + // tdf#121607 lock the dispatcher while processing + // this request, and release it afterwards, + // that means that if this request pops up a dialog + // any other pending requests will be deferred + // until this request is finished, i.e. they won't + // be dispatched by the dispatcher timeout until + // unlock is called, serializing the password dialogs + pDispatcher = pView->GetViewFrame()->GetDispatcher(); + if (!pDispatcher->IsLocked()) + { + pDispatcher->Lock(true); + bUnLockDispatcher = true; + } + } + // #i51949# hide e-Mail option if e-Mail is not supported // #i63267# printing might be disabled if (!xConfigItem || @@ -230,6 +248,9 @@ void SwModule::StateOther(SfxItemSet &rSet) { rSet.DisableItem(nWhich); } + + if (bUnLockDispatcher) + pDispatcher->Lock(false); } break; default: _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits