summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/splivarot.cpp10
-rw-r--r--src/verbs.cpp10
2 files changed, 17 insertions, 3 deletions
diff --git a/src/splivarot.cpp b/src/splivarot.cpp
index f6544872f..40a2a8993 100644
--- a/src/splivarot.cpp
+++ b/src/splivarot.cpp
@@ -310,7 +310,7 @@ Geom::PathVector pathliv_to_pathvector(Path *pathliv){
// take the source paths from the file, do the operation, delete the originals and add the results
BoolOpErrors Inkscape::ObjectSet::pathBoolOp(bool_op bop, const bool skip_undo, const unsigned int verb, const Glib::ustring description)
{
- if (nullptr != desktop() && !skip_undo) {
+ if (nullptr != desktop()) {
SPDocument *doc = desktop()->getDocument();
BoolOpErrors returnCode = ObjectSet::pathBoolOp(bop, true);
switch(returnCode) {
@@ -327,10 +327,14 @@ BoolOpErrors Inkscape::ObjectSet::pathBoolOp(bool_op bop, const bool skip_undo,
boolop_display_error_message(desktop(), _("Unable to determine the <b>z-order</b> of the objects selected for difference, XOR, division, or path cut."));
break;
case DONE_NO_PATH:
- DocumentUndo::done(doc, SP_VERB_NONE, description);
+ if (!skip_undo) {
+ DocumentUndo::done(doc, SP_VERB_NONE, description);
+ }
break;
case DONE:
- DocumentUndo::done(doc, verb, description);
+ if (!skip_undo) {
+ DocumentUndo::done(doc, verb, description);
+ }
break;
}
return returnCode;
diff --git a/src/verbs.cpp b/src/verbs.cpp
index 212fcf357..08a3bb5a0 100644
--- a/src/verbs.cpp
+++ b/src/verbs.cpp
@@ -1233,28 +1233,36 @@ void SelectionVerb::perform(SPAction *action, void *data)
break;
case SP_VERB_SELECTION_OFFSET:
+ selection->toCurves(true);
sp_selected_path_offset(dt);
break;
case SP_VERB_SELECTION_OFFSET_SCREEN:
+ selection->toCurves(true);
sp_selected_path_offset_screen(dt, 1);
break;
case SP_VERB_SELECTION_OFFSET_SCREEN_10:
+ selection->toCurves(true);
sp_selected_path_offset_screen(dt, 10);
break;
case SP_VERB_SELECTION_INSET:
+ selection->toCurves(true);
sp_selected_path_inset(dt);
break;
case SP_VERB_SELECTION_INSET_SCREEN:
+ selection->toCurves(true);
sp_selected_path_inset_screen(dt, 1);
break;
case SP_VERB_SELECTION_INSET_SCREEN_10:
+ selection->toCurves(true);
sp_selected_path_inset_screen(dt, 10);
break;
case SP_VERB_SELECTION_DYNAMIC_OFFSET:
+ selection->toCurves(true);
sp_selected_path_create_offset_object_zero(dt);
tools_switch(dt, TOOLS_NODES);
break;
case SP_VERB_SELECTION_LINKED_OFFSET:
+ selection->toCurves(true);
sp_selected_path_create_updating_offset_object_zero(dt);
tools_switch(dt, TOOLS_NODES);
break;
@@ -1266,9 +1274,11 @@ void SelectionVerb::perform(SPAction *action, void *data)
sp_selected_path_outline(dt, true);
break;
case SP_VERB_SELECTION_SIMPLIFY:
+ selection->toCurves(true);
sp_selected_path_simplify(dt);
break;
case SP_VERB_SELECTION_REVERSE:
+ selection->toCurves(true);
SelectionHelper::reverse(dt);
break;