From 2ebc7ad774aa6fd19c684464e35ce9129f8ae341 Mon Sep 17 00:00:00 2001 From: Jabiertxo Arraiza Cenoz Date: Thu, 28 Dec 2017 19:44:25 +0100 Subject: Add improvements sugested by Eduard Brawn And Moini --- src/splivarot.cpp | 10 +++++++--- src/verbs.cpp | 10 ++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) (limited to 'src') 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 z-order 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; -- cgit v1.2.3