summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sc/source/ui/dbgui/validate.cxx8
-rw-r--r--sc/source/ui/inc/validate.hxx2
2 files changed, 10 insertions, 0 deletions
diff --git a/sc/source/ui/dbgui/validate.cxx b/sc/source/ui/dbgui/validate.cxx
index e2c960d1820f..3482930f173d 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 2c562717f921..cb88b9e8b40e 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* pDoc ) override
{
if ( m_pHandler && m_pSetReferenceHdl )