=== modified file 'src/gradient-drag.cpp' --- src/gradient-drag.cpp 2012-04-11 01:34:38 +0000 +++ src/gradient-drag.cpp 2012-04-25 03:54:58 +0000 @@ -1615,6 +1615,7 @@ */ void GrDrag::addDraggersRadial(SPRadialGradient *rg, SPItem *item, bool fill_or_stroke) { + rg->ensureVector(); addDragger (new GrDraggable (item, POINT_RG_CENTER, 0, fill_or_stroke)); guint num = rg->vector.stops.size(); if (num > 2) { @@ -1637,6 +1638,7 @@ */ void GrDrag::addDraggersLinear(SPLinearGradient *lg, SPItem *item, bool fill_or_stroke) { + lg->ensureVector(); addDragger (new GrDraggable (item, POINT_LG_BEGIN, 0, fill_or_stroke)); guint num = lg->vector.stops.size(); if (num > 2) { === modified file 'src/widgets/gradient-toolbar.cpp' --- src/widgets/gradient-toolbar.cpp 2012-04-09 07:28:40 +0000 +++ src/widgets/gradient-toolbar.cpp 2012-04-25 04:00:26 +0000 @@ -636,6 +636,20 @@ } static void +gr_linked_changed (GtkToggleAction *act, gpointer data) +{ + gboolean active = gtk_toggle_action_get_active( act ); + if ( active ) { + g_object_set( G_OBJECT(act), "iconId", INKSCAPE_ICON("object-locked"), NULL ); + } else { + g_object_set( G_OBJECT(act), "iconId", INKSCAPE_ICON("object-unlocked"), NULL ); + } + + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + prefs->setBool("/options/forkgradientvectors/value", !active); +} + +static void gr_reverse (GtkWidget */*button*/, gpointer data) { SPDesktop *desktop = static_cast(data); @@ -1264,6 +1278,22 @@ } + // Gradients Linked toggle + { + InkToggleAction* itact = ink_toggle_action_new( "GradientEditLinkAction", + _("Link gradients"), + _("Link gradients to change all related gradients"), + INKSCAPE_ICON("object-unlocked"), + secondarySize ); + g_object_set( itact, "short_label", "Lock", NULL ); + g_signal_connect_after( G_OBJECT(itact), "toggled", G_CALLBACK(gr_linked_changed), desktop) ; + gtk_action_group_add_action( mainActions, GTK_ACTION(itact) ); + + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + bool linkedmode = prefs->getBool("/options/forkgradientvectors/value", true); + gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(itact), !linkedmode ); + } + Inkscape::Selection *selection = sp_desktop_selection (desktop); SPDocument *document = sp_desktop_document (desktop); === modified file 'src/widgets/toolbox.cpp' --- src/widgets/toolbox.cpp 2012-04-23 15:37:37 +0000 +++ src/widgets/toolbox.cpp 2012-04-25 00:38:06 +0000 @@ -538,6 +538,7 @@ " " " " " " + " " " " " " " "