diff options
Diffstat (limited to 'fpicker/source/unx/gnome/SalGtkPicker.cxx')
-rw-r--r-- | fpicker/source/unx/gnome/SalGtkPicker.cxx | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/fpicker/source/unx/gnome/SalGtkPicker.cxx b/fpicker/source/unx/gnome/SalGtkPicker.cxx index 782b44d11e7c..94671521a6fc 100644 --- a/fpicker/source/unx/gnome/SalGtkPicker.cxx +++ b/fpicker/source/unx/gnome/SalGtkPicker.cxx @@ -130,9 +130,10 @@ extern "C" extern GdkDisplay* gdk_x11_lookup_xdisplay (void*xdisplay); } -RunDialog::RunDialog( GtkWidget *pDialog, uno::Reference< awt::XExtendedToolkit >& rToolkit ) : - cppu::WeakComponentImplHelper1< awt::XTopWindowListener >( maLock ), - mpDialog(pDialog), mpCreatedParent(NULL), mxToolkit(rToolkit) +RunDialog::RunDialog( GtkWidget *pDialog, uno::Reference< awt::XExtendedToolkit >& rToolkit, + uno::Reference< frame::XDesktop >& rDesktop ) : + cppu::WeakComponentImplHelper2< awt::XTopWindowListener, frame::XTerminateListener >( maLock ), + mpDialog(pDialog), mpCreatedParent(NULL), mxToolkit(rToolkit), mxDesktop(rDesktop) { awt::SystemDependentXWindow aWindowHandle; @@ -186,6 +187,18 @@ void SAL_CALL RunDialog::windowOpened( const ::com::sun::star::lang::EventObject g_timeout_add_full(G_PRIORITY_HIGH_IDLE, 0, (GSourceFunc)canceldialog, this, NULL); } +void SAL_CALL RunDialog::queryTermination( const ::com::sun::star::lang::EventObject& ) + throw(::com::sun::star::frame::TerminationVetoException, ::com::sun::star::uno::RuntimeException) +{ +} + +void SAL_CALL RunDialog::notifyTermination( const ::com::sun::star::lang::EventObject& ) + throw(::com::sun::star::uno::RuntimeException) +{ + GdkThreadLock aLock; + g_timeout_add_full(G_PRIORITY_HIGH_IDLE, 0, (GSourceFunc)canceldialog, this, NULL); +} + void RunDialog::cancel() { GdkThreadLock aLock; |