diff options
author | Katarina Behrens <Katarina.Behrens@cib.de> | 2018-06-22 15:53:51 +0200 |
---|---|---|
committer | Katarina Behrens <Katarina.Behrens@cib.de> | 2018-07-03 14:10:49 +0200 |
commit | e3ac0b04324b32a58c6ce94b413de3c3ea2fa9e0 (patch) | |
tree | f5ca415c777cb8a596ade61ff44f092f0b637bf9 /vcl | |
parent | af74bf268f3cdcd86931d033eaae9ee5ee521c8c (diff) |
Ignore closeEvent if user has vetoed closing the frame
Change-Id: Ib86ec0d297e23c02ad50ce1044859e029eae2ba9
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/qt5/Qt5Widget.cxx | 13 |
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) |