summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2018-06-25 20:48:50 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2018-06-25 20:48:50 +0000
commit66419f96a41c0039f1b5ea58629f76ffa7850035 (patch)
tree44e632d8c38436ff434c5452a20bb52403cdc64c /src
parentFrench translation: simplify the plural form (diff)
downloadinkscape-66419f96a41c0039f1b5ea58629f76ffa7850035.tar.gz
inkscape-66419f96a41c0039f1b5ea58629f76ffa7850035.zip
Fix for bug 1777530 on master
Diffstat (limited to 'src')
-rw-r--r--src/extension/execution-env.cpp3
-rw-r--r--src/extension/implementation/script.cpp12
-rw-r--r--src/extension/prefdialog.cpp1
3 files changed, 4 insertions, 12 deletions
diff --git a/src/extension/execution-env.cpp b/src/extension/execution-env.cpp
index 9a1733eea..c4b7472af 100644
--- a/src/extension/execution-env.cpp
+++ b/src/extension/execution-env.cpp
@@ -194,10 +194,13 @@ ExecutionEnv::run () {
createWorkingDialog();
}
SPDesktop *desktop = (SPDesktop *)_doc;
+ Inkscape::Selection * selection = desktop->getSelection();
+ selection->setBackup();
desktop->setWaitingCursor();
_effect->get_imp()->effect(_effect, _doc, _docCache);
desktop->clearWaitingCursor();
_state = ExecutionEnv::COMPLETE;
+ selection->restoreBackup();
// _runComplete.signal();
return;
}
diff --git a/src/extension/implementation/script.cpp b/src/extension/implementation/script.cpp
index f0a6ec7bf..11961458a 100644
--- a/src/extension/implementation/script.cpp
+++ b/src/extension/implementation/script.cpp
@@ -690,12 +690,6 @@ void Script::effect(Inkscape::Extension::Effect *module,
if (desktop) {
Inkscape::Selection * selection = desktop->getSelection();
if (selection) {
- //No working dialog run once
- if (!selection->isEmpty()) {
- selection->setBackup();
- } else {
- selection->restoreBackup();
- }
params = selection->params;
module->paramListString(params);
selection->clear();
@@ -763,12 +757,6 @@ void Script::effect(Inkscape::Extension::Effect *module,
//set the current layer
desktop->setCurrentLayer(layer);
}
- if (desktop) {
- Inkscape::Selection * selection = desktop->getSelection();
- if (selection && selection->isEmpty()) {
- selection->restoreBackup();
- }
- }
}
mydoc->release();
}
diff --git a/src/extension/prefdialog.cpp b/src/extension/prefdialog.cpp
index 94456b8d4..2d1192d04 100644
--- a/src/extension/prefdialog.cpp
+++ b/src/extension/prefdialog.cpp
@@ -217,6 +217,7 @@ PrefDialog::param_timer_expire () {
if (_exEnv != nullptr) {
_exEnv->cancel();
_exEnv->undo();
+ _exEnv->reselect();
_exEnv->run();
}