diff options
| author | Ted Gould <ted@gould.cx> | 2007-09-01 04:34:28 +0000 |
|---|---|---|
| committer | gouldtj <gouldtj@users.sourceforge.net> | 2007-09-01 04:34:28 +0000 |
| commit | 05d74c016d3077bbb25693abd2fac135d7c8426e (patch) | |
| tree | a00726ffc142a7981bd7f4191b5c06d029fd1fbb /src | |
| parent | r16406@tres: ted | 2007-08-29 20:14:55 -0700 (diff) | |
| download | inkscape-05d74c016d3077bbb25693abd2fac135d7c8426e.tar.gz inkscape-05d74c016d3077bbb25693abd2fac135d7c8426e.zip | |
r16407@tres: ted | 2007-08-29 22:33:35 -0700
Fixing a crash on signal deletion and also making it so that OK is
handled correctly.
(bzr r3646)
Diffstat (limited to 'src')
| -rw-r--r-- | src/extension/execution-env.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/extension/execution-env.cpp b/src/extension/execution-env.cpp index caef5033a..ffaaed86d 100644 --- a/src/extension/execution-env.cpp +++ b/src/extension/execution-env.cpp @@ -78,7 +78,9 @@ ExecutionEnv::ExecutionEnv (Effect * effect, Inkscape::UI::View::View * doc, Gtk ExecutionEnv::~ExecutionEnv (void) { _dialogsig.disconnect(); - _changesig.disconnect(); + if (_prefsVisible) { + _changesig.disconnect(); + } if (_visibleDialog != NULL && !_shutdown) { delete _visibleDialog; } @@ -121,6 +123,7 @@ ExecutionEnv::createWorkingDialog (void) { } if (_changeSignal != NULL) { delete _changeSignal; + _changeSignal = NULL; } gchar * dlgmessage = g_strdup_printf(_("'%s' working, please wait..."), _effect->get_name()); @@ -148,12 +151,17 @@ ExecutionEnv::workingCanceled (const int resp) { void ExecutionEnv::preferencesResponse (const int resp) { if (resp == Gtk::RESPONSE_OK) { - if (_humanWait) { + if (_humanWait && _livePreview) { documentCommit(); _mainloop->quit(); _finished = true; } else { createWorkingDialog(); + if (!_livePreview) { + _mainloop->quit(); + _humanWait = false; + _livePreview = true; // this is counter intuitive + } } } else { if (_humanWait) { |
