summaryrefslogtreecommitdiffstats
path: root/src/display/nr-style.cpp
diff options
context:
space:
mode:
authorTomasz Boczkowski <penginsbacon@gmail.com>2014-05-16 20:53:46 +0000
committerTomasz Boczkowski <penginsbacon@gmail.com>2014-05-16 20:53:46 +0000
commitb4c6736390839c53251011ab5c536e020c02bda0 (patch)
treeaafe6c9366af1974c9969583b870e7453c456e8b /src/display/nr-style.cpp
parentfurther tweaks to build-x64.xml. (diff)
downloadinkscape-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.cpp18
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() ) {