X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fdraw-anchor.cpp;h=363ea0b6ea095e6383042fb4038c12a31e480a16;hb=06ebe04471448f69d3eaa24f6acdf958ff42b761;hp=b06e94a48f0eccf8429af96ae0ec9e284dd24560;hpb=f4f507228b30d55fd7e39386ba513f3a0a54bd5d;p=inkscape.git diff --git a/src/draw-anchor.cpp b/src/draw-anchor.cpp index b06e94a48..363ea0b6e 100644 --- a/src/draw-anchor.cpp +++ b/src/draw-anchor.cpp @@ -17,7 +17,9 @@ #include "desktop.h" #include "desktop-handles.h" #include "event-context.h" +#include "lpe-tool-context.h" #include "display/sodipodi-ctrl.h" +#include "display/curve.h" /** * Creates an anchor object and initializes it. @@ -25,12 +27,18 @@ SPDrawAnchor * sp_draw_anchor_new(SPDrawContext *dc, SPCurve *curve, gboolean start, NR::Point delta) { + if (SP_IS_LPETOOL_CONTEXT(dc)) { + // suppress all kinds of anchors in LPEToolContext + return NULL; + } + SPDesktop *dt = SP_EVENT_CONTEXT_DESKTOP(dc); SPDrawAnchor *a = g_new(SPDrawAnchor, 1); a->dc = dc; a->curve = curve; + curve->ref(); a->start = start; a->active = FALSE; a->dp = delta; @@ -53,6 +61,9 @@ sp_draw_anchor_new(SPDrawContext *dc, SPCurve *curve, gboolean start, NR::Point SPDrawAnchor * sp_draw_anchor_destroy(SPDrawAnchor *anchor) { + if (anchor->curve) { + anchor->curve->unref(); + } if (anchor->ctrl) { gtk_object_destroy(GTK_OBJECT(anchor->ctrl)); }