Bug 18985
Summary: | [QT][CAIRO] x- and y-attributes of <use>-element not used | ||
---|---|---|---|
Product: | WebKit | Reporter: | Dirk Schulze <krit> |
Component: | SVG | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED DUPLICATE | ||
Severity: | Normal | CC: | ap, hausmann |
Priority: | P2 | Keywords: | Cairo, Qt |
Version: | 528+ (Nightly build) | ||
Hardware: | PC | ||
OS: | Linux |
Dirk Schulze
If I understood the code right, the <use>-element is transformed to a <g>-element (in a basic case).
All Attributes are given to the transformed element (like transform,fill,stroke), except for the x- and y-attributes. This only affects the Qt- and Cairo-implementation.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Dirk Schulze
a simple problem:
http://trac.webkit.org/browser/trunk/WebCore/svg/SVGUseElement.cpp#L323
I get a comma instead of a point for floating-point (non-english-speaker), thats why webkit ignores the transformation.
e.g.:
transform(12,000, 30,500) instead of
transform(12.000, 30.500)
Dirk Schulze
(In reply to comment #1)
I use gcc (GCC) 4.2.3
Mark Rowe (bdash)
Looks like vsnprintf is locale-aware, which is probably not what we want inside WebCore.
Mark Rowe (bdash)
*** Bug 19026 has been marked as a duplicate of this bug. ***
Dirk Schulze
A solution could be
setlocale(LC_NUMERIC, "C");
add the line before a vsnprintf() operation or system wide (don't know it this is possible) and it should work. (perhaps with #include <local.h>)
I tested it in SVGUseElement.cpp with success.
Alexey Proskuryakov
See also: bug 18994.
Simon Hausmann
I think the code should not use String::format() but simply toDouble() on a constructed string and construct the entire string to parse manually. String::toDouble() is locale-unaware as far as I can see.
Dirk Schulze
*** This bug has been marked as a duplicate of bug 30342 ***