From cba805c8cd89e304c1d711a19e29547ed8dea48b Mon Sep 17 00:00:00 2001 From: "Johan B. C. Engelen" Date: Sat, 3 Feb 2007 22:45:47 +0000 Subject: Fork gradientvector upon deletion of stops. (bzr r2320) --- src/gradient-chemistry.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/gradient-chemistry.cpp') diff --git a/src/gradient-chemistry.cpp b/src/gradient-chemistry.cpp index bacdfb6aa..78ea13507 100644 --- a/src/gradient-chemistry.cpp +++ b/src/gradient-chemistry.cpp @@ -624,13 +624,11 @@ sp_item_gradient_stop_set_style (SPItem *item, guint point_type, guint point_i, if (!vector) // orphan! return; - - /* - vector = sp_gradient_fork_vector_if_necessary (vector); // TESTJOHAN + + vector = sp_gradient_fork_vector_if_necessary (vector); if ( gradient != vector && gradient->ref->getObject() != vector ) { sp_gradient_repr_set_link(SP_OBJECT_REPR(gradient), vector); } - */ switch (point_type) { case POINT_LG_BEGIN: @@ -1226,6 +1224,18 @@ sp_gradient_vector_for_object(SPDocument *const doc, SPDesktop *const desktop, return sp_document_default_gradient_vector(doc, rgba); } + +SPGradient * +sp_gradient_get_forked_vector_if_necessary(SPGradient *gradient, bool force_vector) +{ + SPGradient *vector = sp_gradient_get_vector (gradient, force_vector); + vector = sp_gradient_fork_vector_if_necessary (vector); + if ( gradient != vector && gradient->ref->getObject() != vector ) { + sp_gradient_repr_set_link(SP_OBJECT_REPR(gradient), vector); + } + return vector; +} + /* Local Variables: mode:c++ -- cgit v1.2.3