summaryrefslogtreecommitdiffstats
path: root/src/widgets
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
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')
-rw-r--r--src/widgets/paint-selector.cpp12
-rw-r--r--src/widgets/swatch-selector.cpp5
-rw-r--r--src/widgets/swatch-selector.h2
3 files changed, 16 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;
}
diff --git a/src/widgets/swatch-selector.cpp b/src/widgets/swatch-selector.cpp
index a7bd5eae1..50ee632cd 100644
--- a/src/widgets/swatch-selector.cpp
+++ b/src/widgets/swatch-selector.cpp
@@ -57,6 +57,11 @@ SwatchSelector::~SwatchSelector()
_gsel = 0;
}
+SPGradientSelector *SwatchSelector::getGradientSelector()
+{
+ return _gsel;
+}
+
void SwatchSelector::_grabbedCb(SPColorSelector * /*csel*/, void * /*data*/)
{
}
diff --git a/src/widgets/swatch-selector.h b/src/widgets/swatch-selector.h
index cf1c24da1..83acf9fda 100644
--- a/src/widgets/swatch-selector.h
+++ b/src/widgets/swatch-selector.h
@@ -28,6 +28,8 @@ public:
void setVector(SPDocument *doc, SPGradient *vector);
+ SPGradientSelector *getGradientSelector();
+
private:
static void _grabbedCb(SPColorSelector *csel, void *data);
static void _draggedCb(SPColorSelector *csel, void *data);