diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2015-05-11 12:22:25 +0100 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2015-05-11 13:09:10 +0100 |
commit | 19ea033f380aa196c9c868a3cdb43e967eb42abe (patch) | |
tree | ae7775819cc9f3a31b184badd6dfc8ac535c287d /svtools/source/uno/popupwindowcontroller.cxx | |
parent | b01554bcdaca076f900c25b672fd691dbe76c9db (diff) |
tdf#91138 - hold reference until idle dispose.
Change-Id: Ibfa9a95d27796f8b44dc610db8daa71b968a7988
Diffstat (limited to 'svtools/source/uno/popupwindowcontroller.cxx')
-rw-r--r-- | svtools/source/uno/popupwindowcontroller.cxx | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/svtools/source/uno/popupwindowcontroller.cxx b/svtools/source/uno/popupwindowcontroller.cxx index 9410bf607365..87e64d475e62 100644 --- a/svtools/source/uno/popupwindowcontroller.cxx +++ b/svtools/source/uno/popupwindowcontroller.cxx @@ -42,9 +42,7 @@ public: ~PopupWindowControllerImpl(); void SetPopupWindow( vcl::Window* pPopupWindow, ToolBox* pToolBox ); - DECL_LINK( WindowEventListener, VclSimpleEvent* ); - DECL_STATIC_LINK( PopupWindowControllerImpl, AsyncDeleteWindowHdl, vcl::Window* ); private: VclPtr<vcl::Window> mpPopupWindow; @@ -68,7 +66,7 @@ void PopupWindowControllerImpl::SetPopupWindow( vcl::Window* pPopupWindow, ToolB if( mpPopupWindow ) { mpPopupWindow->RemoveEventListener( LINK( this, PopupWindowControllerImpl, WindowEventListener ) ); - Application::PostUserEvent( LINK( this, PopupWindowControllerImpl, AsyncDeleteWindowHdl ), mpPopupWindow ); + mpPopupWindow.disposeAndClear(); } mpPopupWindow = pPopupWindow; mpToolBox = pToolBox; @@ -122,14 +120,6 @@ IMPL_LINK( PopupWindowControllerImpl, WindowEventListener, VclSimpleEvent*, pEve } - -IMPL_STATIC_LINK( PopupWindowControllerImpl, AsyncDeleteWindowHdl, vcl::Window*, pWindow ) -{ - pWindow->disposeOnce(); - return 0; -} - - // class PopupWindowController |