diff options
Diffstat (limited to 'src/extension/execution-env.cpp')
| -rw-r--r-- | src/extension/execution-env.cpp | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/extension/execution-env.cpp b/src/extension/execution-env.cpp index adcd2a3d7..be3abcd41 100644 --- a/src/extension/execution-env.cpp +++ b/src/extension/execution-env.cpp @@ -28,7 +28,7 @@ namespace Inkscape { namespace Extension { -ExecutionEnv::ExecutionEnv (Effect * effect, Inkscape::UI::View::View * doc, Gtk::Widget * controls) : +ExecutionEnv::ExecutionEnv (Effect * effect, Inkscape::UI::View::View * doc, Gtk::Widget * controls, Gtk::Dialog * prefDialog) : _effect(effect), _visibleDialog(NULL), _prefsVisible(false), @@ -56,10 +56,15 @@ ExecutionEnv::ExecutionEnv (Effect * effect, Inkscape::UI::View::View * doc, Gtk _mainloop = Glib::MainLoop::create(false); - if (controls != NULL) { - createPrefsDialog(controls); + if (prefDialog == NULL) { + if (controls != NULL) { + createPrefsDialog(controls); + } else { + createWorkingDialog(); + } } else { - createWorkingDialog(); + _visibleDialog = prefDialog; + _prefsVisible = true; } return; @@ -224,7 +229,7 @@ void ExecutionEnv::livePreview (bool state) { _mainloop->quit(); if (_livePreview && !state) { - _canceled = true; + documentCancel(); } if (!_livePreview && state) { _humanWait = false; @@ -233,6 +238,14 @@ ExecutionEnv::livePreview (bool state) { return; } +void +ExecutionEnv::shutdown (void) { + _mainloop->quit(); + processingCancel(); + documentCancel(); + _finished = true; + _visibleDialog = NULL; +} } } /* namespace Inkscape, Extension */ |
