Code

Fix Bug #675309 - crash when unlinking an orphaned clone
[inkscape.git] / src / gradient-context.cpp
index ed20f9b619e79b5cc090b074d41f61cff0015839..f104bbd413aad9a0666b4b15d3ec29a9f242420c 100644 (file)
@@ -1,5 +1,3 @@
-#define __SP_GRADIENT_CONTEXT_C__
-
 /*
  * Gradient drawing and editing tool
  *
@@ -381,7 +379,7 @@ sp_gradient_context_add_stops_between_selected_stops (SPGradientContext *rc)
         if (SP_IS_GRADIENT (parent)) {
             doc = SP_OBJECT_DOCUMENT (parent);
             sp_vector_add_stop (SP_GRADIENT (parent), this_stop, next_stop, offset);
-            sp_gradient_ensure_vector (SP_GRADIENT (parent));
+            SP_GRADIENT(parent)->ensureVector();
         }
     }
 
@@ -559,6 +557,7 @@ sp_gradient_context_root_handler(SPEventContext *event_context, GdkEvent *event)
                 SnapManager &m = desktop->namedview->snap_manager;
                 m.setup(desktop);
                 m.freeSnapReturnByRef(button_dt, Inkscape::SNAPSOURCE_NODE_HANDLE);
+                m.unSetup();
                 rc->origin = from_2geom(button_dt);
             }
 
@@ -599,7 +598,9 @@ sp_gradient_context_root_handler(SPEventContext *event_context, GdkEvent *event)
 
                 Geom::Point const motion_w(event->motion.x, event->motion.y);
                 Geom::Point const motion_dt = event_context->desktop->w2d(motion_w);
+
                 m.preSnap(Inkscape::SnapCandidatePoint(motion_dt, Inkscape::SNAPSOURCE_NODE_HANDLE));
+                m.unSetup();
             }
 
             bool over_line = false;
@@ -650,7 +651,7 @@ sp_gradient_context_root_handler(SPEventContext *event_context, GdkEvent *event)
                 if (!event_context->within_tolerance) {
                     // we've been dragging, either do nothing (grdrag handles that),
                     // or rubberband-select if we have rubberband
-                    Inkscape::Rubberband::Rubberband *r = Inkscape::Rubberband::get(desktop);
+                    Inkscape::Rubberband *r = Inkscape::Rubberband::get(desktop);
                     if (r->is_started() && !event_context->within_tolerance) {
                         // this was a rubberband drag
                         if (r->getMode() == RUBBERBAND_MODE_RECT) {
@@ -948,4 +949,4 @@ static void sp_gradient_drag(SPGradientContext &rc, Geom::Point const pt, guint
   fill-column:99
   End:
 */
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :