summaryrefslogtreecommitdiffstats
path: root/src/extension/execution-env.cpp
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2007-09-01 04:34:28 +0000
committergouldtj <gouldtj@users.sourceforge.net>2007-09-01 04:34:28 +0000
commit05d74c016d3077bbb25693abd2fac135d7c8426e (patch)
treea00726ffc142a7981bd7f4191b5c06d029fd1fbb /src/extension/execution-env.cpp
parentr16406@tres: ted | 2007-08-29 20:14:55 -0700 (diff)
downloadinkscape-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/extension/execution-env.cpp')
-rw-r--r--src/extension/execution-env.cpp12
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) {