Resolves: tdf#137215 restore original modality before dialog loop ends

Change-Id: I83467e28534b781c51b8d75a023e41f3c6a03903
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105251
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/sc/source/ui/dbgui/validate.cxx b/sc/source/ui/dbgui/validate.cxx
index c005f24..ec00b93 100644
--- a/sc/source/ui/dbgui/validate.cxx
+++ b/sc/source/ui/dbgui/validate.cxx
@@ -106,6 +106,14 @@ ScValidationDlg::ScValidationDlg(weld::Window* pParent, const SfxItemSet* pArgSe
    }
}

void ScValidationDlg::EndDialog()
{
    // tdf#137215 ensure original modalality of true is restored before dialog loop ends
    if (m_bOwnRefHdlr)
        RemoveRefDlg(true);
    ScValidationDlgBase::EndDialog();
}

ScValidationDlg::~ScValidationDlg()
{
    if (m_bOwnRefHdlr)
diff --git a/sc/source/ui/inc/validate.hxx b/sc/source/ui/inc/validate.hxx
index bb746f5..3f64e14 100644
--- a/sc/source/ui/inc/validate.hxx
+++ b/sc/source/ui/inc/validate.hxx
@@ -176,6 +176,8 @@ public:

    void            SetModal(bool bModal) { m_xDialog->set_modal(bModal); }

    virtual void EndDialog() override;

    virtual void            SetReference( const ScRange& rRef, ScDocument& rDoc ) override
    {
        if ( m_pHandler && m_pSetReferenceHdl )