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

Change-Id: I83467e28534b781c51b8d75a023e41f3c6a03903
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105214
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
diff --git a/sc/source/ui/dbgui/validate.cxx b/sc/source/ui/dbgui/validate.cxx
index 0c1f63c..63862bc 100644
--- a/sc/source/ui/dbgui/validate.cxx
+++ b/sc/source/ui/dbgui/validate.cxx
@@ -95,6 +95,14 @@ ScValidationDlg::ScValidationDlg(weld::Window* pParent, const SfxItemSet* pArgSe
    AddTabPage("erroralert", ScTPValidationError::Create, nullptr);
}

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 )