summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRaphael Rosch <launchpad@insaner.com>2015-05-04 16:17:58 +0000
committerinsaner <launchpad@insaner.com>2015-05-04 16:17:58 +0000
commitabe296168df89e7f62e9d670602ffea62ad78a22 (patch)
treec2de45c803ec6d4b18cdd5f9b6649976d1c527a3 /src
parentFix crash in PDF export introduced in r14074 (diff)
downloadinkscape-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.cpp18
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>"));