diff options
Diffstat (limited to 'src/splivarot.cpp')
| -rw-r--r-- | src/splivarot.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/splivarot.cpp b/src/splivarot.cpp index 461445ee0..1bc6da3e1 100644 --- a/src/splivarot.cpp +++ b/src/splivarot.cpp @@ -862,7 +862,7 @@ void sp_selected_path_outline_add_marker( SPObject *marker_object, Geom::Affine if (marker->markerUnits == SP_MARKER_UNITS_STROKEWIDTH) { tr = stroke_scale * tr; } - + // total marker transform tr = marker_item->transform * marker->c2p * tr * transform; @@ -1153,7 +1153,9 @@ sp_selected_path_outline(SPDesktop *desktop) desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select <b>stroked path(s)</b> to convert stroke to path.")); return; } - + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + bool scale_stroke = prefs->getBool("/options/transform/stroke", true); + prefs->setBool("/options/transform/stroke", true); bool did = false; std::vector<SPItem*> il(selection->itemList()); for (std::vector<SPItem*>::const_iterator l = il.begin(); l != il.end(); l++){ @@ -1503,7 +1505,7 @@ sp_selected_path_outline(SPDesktop *desktop) delete res; delete orig; } - + prefs->setBool("/options/transform/stroke", scale_stroke); if (did) { DocumentUndo::done(desktop->getDocument(), SP_VERB_SELECTION_OUTLINE, _("Convert stroke to path")); @@ -1774,11 +1776,14 @@ sp_selected_path_do_offset(SPDesktop *desktop, bool expand, double prefOffset) SPItem *item = *l; SPCurve *curve = NULL; - if (!SP_IS_SHAPE(item) && !SP_IS_TEXT(item)) + if (!SP_IS_SHAPE(item) && !SP_IS_TEXT(item) && !SP_IS_FLOWTEXT(item)) continue; else if (SP_IS_SHAPE(item)) { curve = SP_SHAPE(item)->getCurve(); } + else if (SP_IS_FLOWTEXT(item)) { + curve = SP_FLOWTEXT(item)->getNormalizedBpath(); + } else { // Item must be SP_TEXT curve = SP_TEXT(item)->getNormalizedBpath(); } |
