diff options
| author | Jabier Arraiza <jabier.arraiza@marker.es> | 2018-06-12 21:33:11 +0000 |
|---|---|---|
| committer | Jabier Arraiza <jabier.arraiza@marker.es> | 2018-08-05 00:31:06 +0000 |
| commit | bbf828d9ae370e9aede9702e520c106c380a3867 (patch) | |
| tree | 1995e3e38ee25046906073df927999988e445941 /src/widgets | |
| parent | Revert changes (diff) | |
| download | inkscape-bbf828d9ae370e9aede9702e520c106c380a3867.tar.gz inkscape-bbf828d9ae370e9aede9702e520c106c380a3867.zip | |
Refactor with Tav help
Diffstat (limited to 'src/widgets')
| -rw-r--r-- | src/widgets/dash-selector.cpp | 2 | ||||
| -rw-r--r-- | src/widgets/stroke-style.cpp | 22 |
2 files changed, 18 insertions, 6 deletions
diff --git a/src/widgets/dash-selector.cpp b/src/widgets/dash-selector.cpp index 37bf08b3d..5ad74914a 100644 --- a/src/widgets/dash-selector.cpp +++ b/src/widgets/dash-selector.cpp @@ -120,7 +120,7 @@ void SPDashSelector::init_dashes() { double *d = dashes[pos]; unsigned i = 0; for (; i < style.stroke_dasharray.values.size(); i++) { - d[i] = style.stroke_dasharray.values[i]; + d[i] = style.stroke_dasharray.values[i].value; } d[i] = -1; } else { diff --git a/src/widgets/stroke-style.cpp b/src/widgets/stroke-style.cpp index 3a5abbca4..ae49f9e40 100644 --- a/src/widgets/stroke-style.cpp +++ b/src/widgets/stroke-style.cpp @@ -741,14 +741,21 @@ StrokeStyle::setDashSelectorFromStyle(SPDashSelector *dsel, SPStyle *style) if (!style->stroke_dasharray.values.empty()) { double d[64]; size_t len = MIN(style->stroke_dasharray.values.size(), 64); + /* Set dash */ + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + gboolean scale = prefs->getBool("/options/dash/scale", true); + double scaledash = 1.0; + if (scale) { + scaledash = style->stroke_width.computed; + } for (unsigned i = 0; i < len; i++) { if (style->stroke_width.computed != 0) - d[i] = style->stroke_dasharray.values[i] / style->stroke_width.computed; + d[i] = style->stroke_dasharray.values[i].value / scaledash; else - d[i] = style->stroke_dasharray.values[i]; // is there a better thing to do for stroke_width==0? + d[i] = style->stroke_dasharray.values[i].value; // is there a better thing to do for stroke_width==0? } dsel->set_dash(len, d, style->stroke_width.computed != 0 ? - style->stroke_dashoffset.value / style->stroke_width.computed : + style->stroke_dashoffset.value / scaledash : style->stroke_dashoffset.value); } else { dsel->set_dash(0, nullptr, 0.0); @@ -1042,8 +1049,13 @@ StrokeStyle::scaleLine() } /* Set dash */ - setScaledDash(css, ndash, dash, offset, width); - + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + gboolean scale = prefs->getBool("/options/dash/scale", true); + if (scale) { + setScaledDash(css, ndash, dash, offset, width); + } else { + setScaledDash(css, ndash, dash, offset, document->getDocumentScale()[0]); + } sp_desktop_apply_css_recursive ((*i), css, true); } |
