From 233f55ac655ada4bd00578fc4610688583530adb Mon Sep 17 00:00:00 2001 From: John Smith Date: Thu, 6 Dec 2012 10:07:41 +0900 Subject: Fix for 1086881 : Regression editing patterns with node tool (bzr r11933) --- src/gradient-drag.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/gradient-drag.cpp') diff --git a/src/gradient-drag.cpp b/src/gradient-drag.cpp index 69b9db92d..3611eac80 100644 --- a/src/gradient-drag.cpp +++ b/src/gradient-drag.cpp @@ -2080,7 +2080,8 @@ void GrDrag::updateDraggers() if (style && (style->fill.isPaintserver())) { SPPaintServer *server = style->getFillPaintServer(); - if ( server && (server->isSolid() || SP_GRADIENT(server)->getVector()->isSolid()) ) { + if ( server && (server->isSolid() + || (SP_GRADIENT(server)->getVector() && SP_GRADIENT(server)->getVector()->isSolid())) ) { // Suppress "gradientness" of solid paint } else if ( SP_IS_LINEARGRADIENT(server) ) { addDraggersLinear( SP_LINEARGRADIENT(server), item, Inkscape::FOR_FILL ); @@ -2094,7 +2095,8 @@ void GrDrag::updateDraggers() if (style && (style->stroke.isPaintserver())) { SPPaintServer *server = style->getStrokePaintServer(); - if ( server && (server->isSolid() || SP_GRADIENT(server)->getVector()->isSolid()) ) { + if ( server && (server->isSolid() + || (SP_GRADIENT(server)->getVector() && SP_GRADIENT(server)->getVector()->isSolid())) ) { // Suppress "gradientness" of solid paint } else if ( SP_IS_LINEARGRADIENT(server) ) { addDraggersLinear( SP_LINEARGRADIENT(server), item, Inkscape::FOR_STROKE ); @@ -2145,7 +2147,8 @@ void GrDrag::updateLines() if (style && (style->fill.isPaintserver())) { SPPaintServer *server = item->style->getFillPaintServer(); - if ( server && (server->isSolid() || SP_GRADIENT(server)->getVector()->isSolid()) ) { + if ( server && (server->isSolid() || + (SP_GRADIENT(server)->getVector() && SP_GRADIENT(server)->getVector()->isSolid())) ) { // Suppress "gradientness" of solid paint } else if ( SP_IS_LINEARGRADIENT(server) ) { addLine(item, getGradientCoords(item, POINT_LG_BEGIN, 0, Inkscape::FOR_FILL), getGradientCoords(item, POINT_LG_END, 0, Inkscape::FOR_FILL), Inkscape::FOR_FILL); @@ -2204,7 +2207,8 @@ void GrDrag::updateLines() if (style && (style->stroke.isPaintserver())) { SPPaintServer *server = item->style->getStrokePaintServer(); - if ( server && (server->isSolid() || SP_GRADIENT(server)->getVector()->isSolid()) ) { + if ( server && (server->isSolid() + || (SP_GRADIENT(server)->getVector() && SP_GRADIENT(server)->getVector()->isSolid())) ) { // Suppress "gradientness" of solid paint } else if ( SP_IS_LINEARGRADIENT(server) ) { addLine(item, getGradientCoords(item, POINT_LG_BEGIN, 0, Inkscape::FOR_STROKE), getGradientCoords(item, POINT_LG_END, 0, Inkscape::FOR_STROKE), Inkscape::FOR_STROKE); -- cgit v1.2.3