diff options
| author | Eduard Braun <eduard.braun2@gmx.de> | 2017-12-20 21:48:36 +0000 |
|---|---|---|
| committer | Eduard Braun <eduard.braun2@gmx.de> | 2017-12-20 21:48:36 +0000 |
| commit | 7fe5369149c8e894bd4cd71ad535eaff02556f02 (patch) | |
| tree | d0a682bbc59babba39b22de6a963701678048337 /src | |
| parent | Replace the Gtk::Range by Gtk::Scale in the InkSpinScale widget. (diff) | |
| download | inkscape-7fe5369149c8e894bd4cd71ad535eaff02556f02.tar.gz inkscape-7fe5369149c8e894bd4cd71ad535eaff02556f02.zip | |
Effects: make "Working..." dialog transient for preferences dialog
Diffstat (limited to 'src')
| -rw-r--r-- | src/extension/effect.cpp | 6 | ||||
| -rw-r--r-- | src/extension/effect.h | 1 | ||||
| -rw-r--r-- | src/extension/execution-env.cpp | 13 |
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; |
