From: gouldtj Date: Sat, 1 Sep 2007 04:34:37 +0000 (+0000) Subject: r16408@tres: ted | 2007-08-29 22:52:27 -0700 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=6627e0cf09624d4c2d608163ff929e790295b5f1;p=inkscape.git r16408@tres: ted | 2007-08-29 22:52:27 -0700 Nasty little state machine. Seems better now. --- diff --git a/src/extension/execution-env.cpp b/src/extension/execution-env.cpp index ffaaed86d..9f50f0c6a 100644 --- a/src/extension/execution-env.cpp +++ b/src/extension/execution-env.cpp @@ -67,6 +67,9 @@ ExecutionEnv::ExecutionEnv (Effect * effect, Inkscape::UI::View::View * doc, Gtk } else { _visibleDialog = prefDialog; _prefsVisible = true; + + // We came from a dialog, we'll need to die by ourselves. + _selfdelete = true; } if (_changeSignal != NULL) { @@ -160,7 +163,6 @@ ExecutionEnv::preferencesResponse (const int resp) { if (!_livePreview) { _mainloop->quit(); _humanWait = false; - _livePreview = true; // this is counter intuitive } } } else { @@ -234,7 +236,7 @@ void ExecutionEnv::run (void) { while (!_finished) { _canceled = false; - if (_humanWait || !_livePreview) { + if (_humanWait) { _mainloop->run(); } else { _prefsChanged = false; @@ -257,6 +259,7 @@ ExecutionEnv::livePreview (bool state) { _mainloop->quit(); if (_livePreview && !state) { documentCancel(); + _humanWait = true; } if (!_livePreview && state) { _humanWait = false;