summaryrefslogtreecommitdiffstats
path: root/src/widgets/paint-selector.cpp
diff options
context:
space:
mode:
authorJon A. Cruz <jon@joncruz.org>2010-03-21 22:16:39 +0000
committerJon A. Cruz <jon@joncruz.org>2010-03-21 22:16:39 +0000
commitdf087e8cc5961fef1a59f46889a772da8e58d230 (patch)
tree3cdc0d029373faf5ba71f7537a17ab4934106834 /src/widgets/paint-selector.cpp
parentFix regression caused by rev. #9158 (selection of nodes in the node editor by... (diff)
downloadinkscape-df087e8cc5961fef1a59f46889a772da8e58d230.tar.gz
inkscape-df087e8cc5961fef1a59f46889a772da8e58d230.zip
Fix crash
(bzr r9220)
Diffstat (limited to 'src/widgets/paint-selector.cpp')
-rw-r--r--src/widgets/paint-selector.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/widgets/paint-selector.cpp b/src/widgets/paint-selector.cpp
index 892793543..3eaec1c23 100644
--- a/src/widgets/paint-selector.cpp
+++ b/src/widgets/paint-selector.cpp
@@ -125,9 +125,15 @@ static bool isPaintModeGradient( SPPaintSelectorMode mode )
static SPGradientSelector *getGradientFromData(SPPaintSelector *psel)
{
- // TODO g_message("FIXME FIXME");
- gchar const* key = (psel->mode == SP_PAINT_SELECTOR_MODE_SWATCH) ? "swatch-selector" : "gradient-selector";
- SPGradientSelector *grad = reinterpret_cast<SPGradientSelector*>(gtk_object_get_data(GTK_OBJECT(psel->selector), key));
+ SPGradientSelector *grad = 0;
+ if (psel->mode == SP_PAINT_SELECTOR_MODE_SWATCH) {
+ SwatchSelector *swatchsel = static_cast<SwatchSelector*>(g_object_get_data(G_OBJECT(psel->selector), "swatch-selector"));
+ if (swatchsel) {
+ grad = swatchsel->getGradientSelector();
+ }
+ } else {
+ grad = reinterpret_cast<SPGradientSelector*>(gtk_object_get_data(GTK_OBJECT(psel->selector), "gradient-selector"));
+ }
return grad;
}