static void pencil_cancel (SPPencilContext *const pc) { if (pc->grab) { /* Release grab now */ sp_canvas_item_ungrab(pc->grab, 0); pc->grab = NULL; } pc->is_drawing = false; pc->state = SP_PENCIL_CONTEXT_IDLE; pc->red_curve->reset(); sp_canvas_bpath_set_bpath(SP_CANVAS_BPATH(pc->red_bpath), NULL); while (pc->green_bpaths) { gtk_object_destroy(GTK_OBJECT(pc->green_bpaths->data)); pc->green_bpaths = g_slist_remove(pc->green_bpaths, pc->green_bpaths->data); } pc->green_curve->reset(); if (pc->green_anchor) { pc->green_anchor = sp_draw_anchor_destroy(pc->green_anchor); } pc->_message_context->clear(); pc->_message_context->flash(Inkscape::NORMAL_MESSAGE, _("Drawing cancelled")); sp_canvas_end_forced_full_redraws(pc->desktop->canvas); }
void Inkscape::Rubberband::stop() { _started = false; _mode = RUBBERBAND_MODE_RECT; // restore the default _points.clear(); _touchpath_curve->reset(); delete_canvas_items(); if (_desktop) sp_canvas_end_forced_full_redraws(_desktop->canvas); }
static void sp_spiral_finish(SPSpiralContext *sc) { sc->_message_context->clear(); if (sc->item != NULL) { SPDesktop *desktop = SP_EVENT_CONTEXT(sc)->desktop; SPSpiral *spiral = SP_SPIRAL(sc->item); sp_shape_set_shape(SP_SHAPE(spiral)); SP_OBJECT(spiral)->updateRepr(SP_OBJECT_WRITE_EXT); sp_canvas_end_forced_full_redraws(desktop->canvas); sp_desktop_selection(desktop)->set(sc->item); sp_document_done(sp_desktop_document(desktop), SP_VERB_CONTEXT_SPIRAL, _("Create spiral")); sc->item = NULL; } }