diff options
| author | Tomasz Boczkowski <penginsbacon@gmail.com> | 2014-05-16 20:53:46 +0000 |
|---|---|---|
| committer | Tomasz Boczkowski <penginsbacon@gmail.com> | 2014-05-16 20:53:46 +0000 |
| commit | b4c6736390839c53251011ab5c536e020c02bda0 (patch) | |
| tree | aafe6c9366af1974c9969583b870e7453c456e8b /src/display/nr-style.cpp | |
| parent | further tweaks to build-x64.xml. (diff) | |
| download | inkscape-b4c6736390839c53251011ab5c536e020c02bda0.tar.gz inkscape-b4c6736390839c53251011ab5c536e020c02bda0.zip | |
fix compliance test pservers-pattern-03-f - using fallback when pattern is empty
(bzr r13341.1.34)
Diffstat (limited to 'src/display/nr-style.cpp')
| -rw-r--r-- | src/display/nr-style.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/display/nr-style.cpp b/src/display/nr-style.cpp index ec3117079..a9f101f69 100644 --- a/src/display/nr-style.cpp +++ b/src/display/nr-style.cpp @@ -95,7 +95,14 @@ NRStyle::~NRStyle() void NRStyle::set(SPStyle *style) { if ( style->fill.isPaintserver() ) { - fill.set(style->getFillPaintServer()); + SPPaintServer* server = style->getFillPaintServer(); + if ( server && server->isValid() ) { + fill.set(server); + } else if ( style->fill.colorSet ) { + fill.set(style->fill.value.color); + } else { + fill.clear(); + } } else if ( style->fill.isColor() ) { fill.set(style->fill.value.color); } else if ( style->fill.isNone() ) { @@ -117,7 +124,14 @@ void NRStyle::set(SPStyle *style) } if ( style->stroke.isPaintserver() ) { - stroke.set(style->getStrokePaintServer()); + SPPaintServer* server = style->getStrokePaintServer(); + if ( server && server->isValid() ) { + stroke.set(server); + } else if ( style->stroke.isColor() ) { + stroke.set(style->stroke.colorSet); + } else { + stroke.clear(); + } } else if ( style->stroke.isColor() ) { stroke.set(style->stroke.value.color); } else if ( style->stroke.isNone() ) { |
