diff options
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/inc/salframe.hxx | 4 | ||||
-rw-r--r-- | vcl/source/window/dialog.cxx | 8 | ||||
-rw-r--r-- | vcl/source/window/window.cxx | 5 |
3 files changed, 13 insertions, 4 deletions
diff --git a/vcl/inc/salframe.hxx b/vcl/inc/salframe.hxx index b77ceafa8079..86ad6da98b6e 100644 --- a/vcl/inc/salframe.hxx +++ b/vcl/inc/salframe.hxx @@ -117,6 +117,7 @@ private: // the VCL window corresponding to this frame VclPtr<vcl::Window> m_pWindow; SALFRAMEPROC m_pProc; + Link<bool, void> m_aModalHierarchyHdl; protected: mutable std::unique_ptr<weld::Window> m_xFrameWeld; public: @@ -287,6 +288,9 @@ public: // returns the instance set vcl::Window* GetWindow() const { return m_pWindow; } + void SetModalHierarchyHdl(const Link<bool, void>& rLink) { m_aModalHierarchyHdl = rLink; } + void NotifyModalHierarchy(bool bModal) { m_aModalHierarchyHdl.Call(bModal); } + // Call the callback set; this sometimes necessary for implementation classes // that should not know more than necessary about the SalFrame implementation // (e.g. input methods, printer update handlers). diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx index 03512eb76178..ce83520c997a 100644 --- a/vcl/source/window/dialog.cxx +++ b/vcl/source/window/dialog.cxx @@ -967,8 +967,8 @@ bool Dialog::ImplStartExecute() if ( GetParent() ) { - NotifyEvent aNEvt( MouseNotifyEvent::EXECUTEDIALOG, this ); - GetParent()->CompatNotify( aNEvt ); + SalFrame* pFrame = GetParent()->ImplGetFrame(); + pFrame->NotifyModalHierarchy(true); } } @@ -1161,8 +1161,8 @@ void Dialog::EndDialog( long nResult ) if (bModal && GetParent()) { - NotifyEvent aNEvt( MouseNotifyEvent::ENDEXECUTEDIALOG, this ); - GetParent()->CompatNotify( aNEvt ); + SalFrame* pFrame = GetParent()->ImplGetFrame(); + pFrame->NotifyModalHierarchy(false); } mpDialogImpl->mnResult = nResult; diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx index c6dc06416c8f..27f027eb3224 100644 --- a/vcl/source/window/window.cxx +++ b/vcl/source/window/window.cxx @@ -1745,6 +1745,11 @@ void Window::ImplNewInputContext() pFocusWin->ImplGetFrame()->SetInputContext( &aNewContext ); } +void Window::SetModalHierarchyHdl(const Link<bool, void>& rLink) +{ + ImplGetFrame()->SetModalHierarchyHdl(rLink); +} + void Window::SetParentToDefaultWindow() { Show(false); |