From 05dc15c9512fbeb2e1e1066732258f971f6d9086 Mon Sep 17 00:00:00 2001 From: gouldtj Date: Sat, 1 Sep 2007 04:34:28 +0000 Subject: [PATCH] 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. --- src/extension/execution-env.cpp | 12 ++++++++++-- 1 file 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) { -- 2.30.2