From 7fe5369149c8e894bd4cd71ad535eaff02556f02 Mon Sep 17 00:00:00 2001 From: Eduard Braun Date: Wed, 20 Dec 2017 22:48:36 +0100 Subject: Effects: make "Working..." dialog transient for preferences dialog --- src/extension/effect.cpp | 6 ++++++ src/extension/effect.h | 1 + src/extension/execution-env.cpp | 13 +++++++++++-- 3 files changed, 18 insertions(+), 2 deletions(-) (limited to 'src') 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 #endif -#include "gtkmm/messagedialog.h" +#include +#include #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; -- cgit v1.2.3