diff options
author | Caolán McNamara <caolanm@redhat.com> | 2015-06-26 16:30:02 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2015-06-26 16:31:43 +0100 |
commit | 30a5b304f2c1c3d89a2e3b76ac44f2c6376ee65f (patch) | |
tree | 933f6f176f934ad0e176a05b25389736b74c5c28 | |
parent | 3a68a7dcf49f7be95086b747c8426aa310307e49 (diff) |
gtk3: gtk_window_set_transient_for on overwrite warning dlg
Change-Id: I91d21e3d1663880de14792ded0a1e079d1a40f09
-rw-r--r-- | vcl/unx/gtk/fpicker/SalGtkFilePicker.cxx | 6 | ||||
-rw-r--r-- | vcl/unx/gtk/fpicker/SalGtkFolderPicker.cxx | 3 | ||||
-rw-r--r-- | vcl/unx/gtk/fpicker/SalGtkPicker.cxx | 17 | ||||
-rw-r--r-- | vcl/unx/gtk/fpicker/SalGtkPicker.hxx | 1 |
4 files changed, 19 insertions, 8 deletions
diff --git a/vcl/unx/gtk/fpicker/SalGtkFilePicker.cxx b/vcl/unx/gtk/fpicker/SalGtkFilePicker.cxx index 9936f8cecc71..273116233612 100644 --- a/vcl/unx/gtk/fpicker/SalGtkFilePicker.cxx +++ b/vcl/unx/gtk/fpicker/SalGtkFilePicker.cxx @@ -918,6 +918,9 @@ sal_Int16 SAL_CALL SalGtkFilePicker::execute() throw( uno::RuntimeException, std frame::Desktop::create(m_xContext), UNO_QUERY_THROW ); + GtkWindow *pParent = RunDialog::GetTransientFor(); + if (pParent) + gtk_window_set_transient_for(GTK_WINDOW(m_pDialog), pParent); RunDialog* pRunDialog = new RunDialog(m_pDialog, xToolkit, xDesktop); uno::Reference < awt::XTopWindowListener > xLifeCycle(pRunDialog); while( GTK_RESPONSE_NO == btn ) @@ -1005,7 +1008,8 @@ sal_Int16 SAL_CALL SalGtkFilePicker::execute() throw( uno::RuntimeException, std gtk_window_set_title( GTK_WINDOW( dlg ), OUStringToOString(getResString(FILE_PICKER_TITLE_SAVE ), RTL_TEXTENCODING_UTF8 ).getStr() ); - + if (pParent) + gtk_window_set_transient_for(GTK_WINDOW(dlg), pParent); RunDialog* pAnotherDialog = new RunDialog(dlg, xToolkit, xDesktop); uno::Reference < awt::XTopWindowListener > xAnotherLifeCycle(pAnotherDialog); btn = pAnotherDialog->run(); diff --git a/vcl/unx/gtk/fpicker/SalGtkFolderPicker.cxx b/vcl/unx/gtk/fpicker/SalGtkFolderPicker.cxx index 3a2fc6caf93f..23efb79c3f9e 100644 --- a/vcl/unx/gtk/fpicker/SalGtkFolderPicker.cxx +++ b/vcl/unx/gtk/fpicker/SalGtkFolderPicker.cxx @@ -145,6 +145,9 @@ sal_Int16 SAL_CALL SalGtkFolderPicker::execute() throw( uno::RuntimeException, s uno::Reference< frame::XDesktop > xDesktop( frame::Desktop::create(m_xContext), uno::UNO_QUERY); + GtkWindow *pParent = RunDialog::GetTransientFor(); + if (pParent) + gtk_window_set_transient_for(GTK_WINDOW(m_pDialog), pParent); RunDialog* pRunDialog = new RunDialog(m_pDialog, xToolkit, xDesktop); uno::Reference < awt::XTopWindowListener > xLifeCycle(pRunDialog); gint nStatus = pRunDialog->run(); diff --git a/vcl/unx/gtk/fpicker/SalGtkPicker.cxx b/vcl/unx/gtk/fpicker/SalGtkPicker.cxx index 6ada45baf4ff..c53a80be39ee 100644 --- a/vcl/unx/gtk/fpicker/SalGtkPicker.cxx +++ b/vcl/unx/gtk/fpicker/SalGtkPicker.cxx @@ -103,10 +103,7 @@ extern "C" } } -RunDialog::RunDialog( GtkWidget *pDialog, uno::Reference< awt::XExtendedToolkit >& rToolkit, - uno::Reference< frame::XDesktop >& rDesktop ) : - cppu::WeakComponentImplHelper2< awt::XTopWindowListener, frame::XTerminateListener >( maLock ), - mpDialog(pDialog), mxToolkit(rToolkit), mxDesktop(rDesktop) +GtkWindow* RunDialog::GetTransientFor() { GtkWindow *pParent = NULL; @@ -117,8 +114,15 @@ RunDialog::RunDialog( GtkWidget *pDialog, uno::Reference< awt::XExtendedToolkit if( pFrame ) pParent = GTK_WINDOW( pFrame->getWindow() ); } - if (pParent) - gtk_window_set_transient_for( GTK_WINDOW( mpDialog ), pParent ); + + return pParent; +} + +RunDialog::RunDialog( GtkWidget *pDialog, uno::Reference< awt::XExtendedToolkit >& rToolkit, + uno::Reference< frame::XDesktop >& rDesktop ) : + cppu::WeakComponentImplHelper2< awt::XTopWindowListener, frame::XTerminateListener >( maLock ), + mpDialog(pDialog), mxToolkit(rToolkit), mxDesktop(rDesktop) +{ } RunDialog::~RunDialog() @@ -132,7 +136,6 @@ void SAL_CALL RunDialog::windowOpened( const ::com::sun::star::lang::EventObject throw (::com::sun::star::uno::RuntimeException, std::exception) { SolarMutexGuard g; - g_timeout_add_full(G_PRIORITY_HIGH_IDLE, 0, reinterpret_cast<GSourceFunc>(canceldialog), this, NULL); } diff --git a/vcl/unx/gtk/fpicker/SalGtkPicker.hxx b/vcl/unx/gtk/fpicker/SalGtkPicker.hxx index 78d810cf16c7..dd98b3a93dc9 100644 --- a/vcl/unx/gtk/fpicker/SalGtkPicker.hxx +++ b/vcl/unx/gtk/fpicker/SalGtkPicker.hxx @@ -115,6 +115,7 @@ public: virtual ~RunDialog(); gint run(); void cancel(); + static GtkWindow* GetTransientFor(); }; #endif |