Code

Fix by Adib for 353847
[inkscape.git] / src / gradient-context.cpp
index e9b46a2c29df5e3275d09c8a3d0af12665c68f79..fc5c1af446593c0db42626003aab45e8d9ec11bc 100644 (file)
@@ -114,8 +114,6 @@ static void sp_gradient_context_dispose(GObject *object)
     SPGradientContext *rc = SP_GRADIENT_CONTEXT(object);
     SPEventContext *ec = SP_EVENT_CONTEXT(object);
 
-    sp_canvas_set_snap_delay_active(ec->desktop->canvas, false);
-
     ec->enableGrDrag(false);
 
     if (rc->_message_context) {
@@ -149,6 +147,9 @@ gradient_selection_changed (Inkscape::Selection *, gpointer data)
 
     GrDrag *drag = rc->_grdrag;
     Inkscape::Selection *selection = sp_desktop_selection(SP_EVENT_CONTEXT(rc)->desktop);
+    if (selection == NULL) {
+       return;
+    }
     guint n_obj = g_slist_length((GSList *) selection->itemList());
 
     if (!drag->isNonEmpty() || selection->isEmpty())
@@ -218,8 +219,6 @@ static void sp_gradient_context_setup(SPEventContext *ec)
     rc->selcon = new sigc::connection (selection->connectChanged( sigc::bind (sigc::ptr_fun(&gradient_selection_changed), rc)));
     rc->subselcon = new sigc::connection (ec->desktop->connectToolSubselectionChanged(sigc::bind (sigc::ptr_fun(&gradient_subselection_changed), rc)));
     gradient_selection_changed(selection, rc);
-
-    sp_canvas_set_snap_delay_active(ec->desktop->canvas, true);
 }
 
 void
@@ -557,10 +556,9 @@ sp_gradient_context_root_handler(SPEventContext *event_context, GdkEvent *event)
                 if (!(event->button.state & GDK_CONTROL_MASK))
                     event_context->item_to_select = sp_event_context_find_item (desktop, button_w, event->button.state & GDK_MOD1_MASK, TRUE);
 
-                /* Snap center to nearest magnetic point */
                 SnapManager &m = desktop->namedview->snap_manager;
                 m.setup(desktop);
-                m.freeSnapReturnByRef(Inkscape::SnapPreferences::SNAPPOINT_NODE, button_dt);
+                m.freeSnapReturnByRef(Inkscape::SnapPreferences::SNAPPOINT_NODE, button_dt, Inkscape::SNAPSOURCE_HANDLE);
                 rc->origin = from_2geom(button_dt);
             }