summaryrefslogtreecommitdiffstats
path: root/src/extension
diff options
context:
space:
mode:
authorEduard Braun <eduard.braun2@gmx.de>2017-12-20 21:48:36 +0000
committerEduard Braun <eduard.braun2@gmx.de>2017-12-20 21:48:36 +0000
commit7fe5369149c8e894bd4cd71ad535eaff02556f02 (patch)
treed0a682bbc59babba39b22de6a963701678048337 /src/extension
parentReplace the Gtk::Range by Gtk::Scale in the InkSpinScale widget. (diff)
downloadinkscape-7fe5369149c8e894bd4cd71ad535eaff02556f02.tar.gz
inkscape-7fe5369149c8e894bd4cd71ad535eaff02556f02.zip
Effects: make "Working..." dialog transient for preferences dialog
Diffstat (limited to 'src/extension')
-rw-r--r--src/extension/effect.cpp6
-rw-r--r--src/extension/effect.h1
-rw-r--r--src/extension/execution-env.cpp13
3 files changed, 18 insertions, 2 deletions
diff --git a/src/extension/effect.cpp b/src/extension/effect.cpp
index ef254f623..38e437ac9 100644
--- a/src/extension/effect.cpp
+++ b/src/extension/effect.cpp
@@ -352,6 +352,12 @@ Effect::get_info_widget(void)
return Extension::get_info_widget();
}
+PrefDialog *
+Effect::get_pref_dialog (void)
+{
+ return _prefDialog;
+}
+
void
Effect::set_pref_dialog (PrefDialog * prefdialog)
{
diff --git a/src/extension/effect.h b/src/extension/effect.h
index a14cc6e7d..143243a2e 100644
--- a/src/extension/effect.h
+++ b/src/extension/effect.h
@@ -125,6 +125,7 @@ public:
bool no_doc; // if true, the effect does not process SVG document at all, so no need to save, read, and watch for errors
bool no_live_preview; // if true, the effect does not need "live preview" checkbox in its dialog
+ PrefDialog *get_pref_dialog (void);
void set_pref_dialog (PrefDialog * prefdialog);
private:
static gchar * remove_ (gchar * instr);
diff --git a/src/extension/execution-env.cpp b/src/extension/execution-env.cpp
index f75b06937..588543a76 100644
--- a/src/extension/execution-env.cpp
+++ b/src/extension/execution-env.cpp
@@ -12,7 +12,8 @@
#include <config.h>
#endif
-#include "gtkmm/messagedialog.h"
+#include <gtkmm/dialog.h>
+#include <gtkmm/messagedialog.h>
#include "execution-env.h"
#include "prefdialog.h"
@@ -141,7 +142,15 @@ ExecutionEnv::createWorkingDialog (void) {
g_free(dlgmessage);
if (!_effect->is_silent()){
- _visibleDialog->show();
+ Gtk::Dialog *dlg = _effect->get_pref_dialog();
+ if (dlg) {
+ _visibleDialog->set_transient_for(*dlg);
+ } else {
+ // ToDo: Do we need to make the window transient for the main window here?
+ // Currently imossible to test because of GUI freezing during save,
+ // see https://bugs.launchpad.net/inkscape/+bug/967416
+ }
+ _visibleDialog->show_now();
}
return;