summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorKatarina Behrens <Katarina.Behrens@cib.de>2018-06-22 15:53:51 +0200
committerKatarina Behrens <Katarina.Behrens@cib.de>2018-07-03 14:10:49 +0200
commite3ac0b04324b32a58c6ce94b413de3c3ea2fa9e0 (patch)
treef5ca415c777cb8a596ade61ff44f092f0b637bf9 /vcl
parentaf74bf268f3cdcd86931d033eaae9ee5ee521c8c (diff)
Ignore closeEvent if user has vetoed closing the frame
Change-Id: Ib86ec0d297e23c02ad50ce1044859e029eae2ba9
Diffstat (limited to 'vcl')
-rw-r--r--vcl/qt5/Qt5Widget.cxx13
1 files changed, 11 insertions, 2 deletions
diff --git a/vcl/qt5/Qt5Widget.cxx b/vcl/qt5/Qt5Widget.cxx
index 8c62280d3f99..3e3448381946 100644
--- a/vcl/qt5/Qt5Widget.cxx
+++ b/vcl/qt5/Qt5Widget.cxx
@@ -199,9 +199,18 @@ void VclQtMixinBase::mixinShowEvent(QShowEvent*)
m_pFrame->CallCallback(SalEvent::Paint, &aPaintEvt);
}
-void VclQtMixinBase::mixinCloseEvent(QCloseEvent* /*pEvent*/)
+void VclQtMixinBase::mixinCloseEvent(QCloseEvent* pEvent)
{
- m_pFrame->CallCallback(SalEvent::Close, nullptr);
+ bool bRet = false;
+ bRet = m_pFrame->CallCallback(SalEvent::Close, nullptr);
+
+ if (bRet)
+ pEvent->accept();
+ // SalEvent::Close returning false may mean that user has vetoed
+ // closing the frame ("you have unsaved changes" dialog for example)
+ // We should't process the event in such case
+ else
+ pEvent->ignore();
}
static sal_uInt16 GetKeyCode(int keyval)