diff options
| author | Raphael Rosch <launchpad@insaner.com> | 2015-05-04 16:17:58 +0000 |
|---|---|---|
| committer | insaner <launchpad@insaner.com> | 2015-05-04 16:17:58 +0000 |
| commit | abe296168df89e7f62e9d670602ffea62ad78a22 (patch) | |
| tree | c2de45c803ec6d4b18cdd5f9b6649976d1c527a3 /src | |
| parent | Fix crash in PDF export introduced in r14074 (diff) | |
| download | inkscape-abe296168df89e7f62e9d670602ffea62ad78a22.tar.gz inkscape-abe296168df89e7f62e9d670602ffea62ad78a22.zip | |
going from swatch to flat color should start with previous swatch color
Fixed bugs:
- https://launchpad.net/bugs/1450112
(bzr r14109)
Diffstat (limited to 'src')
| -rw-r--r-- | src/widgets/paint-selector.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/widgets/paint-selector.cpp b/src/widgets/paint-selector.cpp index 740ce2b0e..221344296 100644 --- a/src/widgets/paint-selector.cpp +++ b/src/widgets/paint-selector.cpp @@ -35,6 +35,7 @@ #include "sp-linear-gradient.h" #include "sp-radial-gradient.h" #include "sp-mesh.h" +#include "sp-stop.h" /* fixme: Move it from dialogs to here */ #include "gradient-selector.h" #include <inkscape.h> @@ -658,6 +659,20 @@ sp_paint_selector_color_changed(SPColorSelector *csel, SPPaintSelector *psel) static void sp_paint_selector_set_mode_color(SPPaintSelector *psel, SPPaintSelector::Mode /*mode*/) { GtkWidget *csel; + + SPColor newcolor = psel->color; + float newalpha = psel->alpha; + + if ((psel->mode == SPPaintSelector::MODE_SWATCH) + || (psel->mode == SPPaintSelector::MODE_GRADIENT_LINEAR) + || (psel->mode == SPPaintSelector::MODE_GRADIENT_RADIAL) ) { + SPGradientSelector *gsel = getGradientFromData(psel); + if (gsel) { + SPGradient *gradient = gsel->getVector(); + newcolor = gradient->getFirstStop()->specified_color; + newalpha = gradient->getFirstStop()->opacity; + } + } sp_paint_selector_set_style_buttons(psel, psel->solid); gtk_widget_set_sensitive(psel->style, TRUE); @@ -693,8 +708,7 @@ static void sp_paint_selector_set_mode_color(SPPaintSelector *psel, SPPaintSelec psel->selector = vb; /* Set color */ - SP_COLOR_SELECTOR( csel )->base->setColorAlpha( psel->color, psel->alpha ); - + SP_COLOR_SELECTOR( csel )->base->setColorAlpha( newcolor, newalpha ); } gtk_label_set_markup(GTK_LABEL(psel->label), _("<b>Flat color</b>")); |
