diff options
| author | Jon A. Cruz <jon@joncruz.org> | 2010-03-21 22:16:39 +0000 |
|---|---|---|
| committer | Jon A. Cruz <jon@joncruz.org> | 2010-03-21 22:16:39 +0000 |
| commit | df087e8cc5961fef1a59f46889a772da8e58d230 (patch) | |
| tree | 3cdc0d029373faf5ba71f7537a17ab4934106834 /src/widgets | |
| parent | Fix regression caused by rev. #9158 (selection of nodes in the node editor by... (diff) | |
| download | inkscape-df087e8cc5961fef1a59f46889a772da8e58d230.tar.gz inkscape-df087e8cc5961fef1a59f46889a772da8e58d230.zip | |
Fix crash
(bzr r9220)
Diffstat (limited to 'src/widgets')
| -rw-r--r-- | src/widgets/paint-selector.cpp | 12 | ||||
| -rw-r--r-- | src/widgets/swatch-selector.cpp | 5 | ||||
| -rw-r--r-- | src/widgets/swatch-selector.h | 2 |
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); |
