diff options
| author | eman-mod <> | 2017-04-15 12:00:25 +0000 |
|---|---|---|
| committer | Marc Jeanmougin <marcjeanmougin@free.fr> | 2017-04-15 12:00:25 +0000 |
| commit | e82821c81ea7ba01b3bc0b0b9589a97f1ff23144 (patch) | |
| tree | cb29afea46a1a71ca31996549d66ab59144c3748 /src/ui/widget/selected-style.cpp | |
| parent | fix scrolling on style indicator in statusbar for gtk3 (diff) | |
| download | inkscape-e82821c81ea7ba01b3bc0b0b9589a97f1ff23144.tar.gz inkscape-e82821c81ea7ba01b3bc0b0b9589a97f1ff23144.zip | |
Fix behavior of scroling stroke width statusbar indicator with non-px units
Fixed bugs:
- https://launchpad.net/bugs/1671877
(bzr r15622)
Diffstat (limited to 'src/ui/widget/selected-style.cpp')
| -rw-r--r-- | src/ui/widget/selected-style.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/ui/widget/selected-style.cpp b/src/ui/widget/selected-style.cpp index 0370d55db..65d68195c 100644 --- a/src/ui/widget/selected-style.cpp +++ b/src/ui/widget/selected-style.cpp @@ -1380,13 +1380,8 @@ RotateableStrokeWidth::value_adjust(double current, double by, guint /*modifier* { double newval; // by is -1..1 - if (by < 0) { - // map negative 0..-1 to current..0 - newval = current * (1 + by); - } else { - // map positive 0..1 to current..4*current - newval = current * (1 + by) * (1 + by); - } + double max_f = 50; // maximum width is (current * max_f), minimum - zero + newval = current * (std::exp(std::log(max_f-1) * (by+1)) - 1) / (max_f-2); SPCSSAttr *css = sp_repr_css_attr_new (); if (final && newval < 1e-6) { @@ -1394,6 +1389,7 @@ RotateableStrokeWidth::value_adjust(double current, double by, guint /*modifier* // if it's not final, leave it a chance to increase again (which is not possible with "none") sp_repr_css_set_property (css, "stroke", "none"); } else { + newval = Inkscape::Util::Quantity::convert(newval, parent->_sw_unit, "px"); Inkscape::CSSOStringStream os; os << newval; sp_repr_css_set_property (css, "stroke-width", os.str().c_str()); |
