summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2006-05-04 14:14:43 +0000
committercth103 <cth103@users.sourceforge.net>2006-05-04 14:14:43 +0000
commit2f7f8b94795261a2d0f44455478b146d7da04ce8 (patch)
tree174b1919b42806b7ad55fcfd529b598a43f98fc3 /src
parentfix relative and absolute paths according to w3c uri spec (diff)
downloadinkscape-2f7f8b94795261a2d0f44455478b146d7da04ce8.tar.gz
inkscape-2f7f8b94795261a2d0f44455478b146d7da04ce8.zip
Clean up knutux's fix for the snapper crash.
(bzr r727)
Diffstat (limited to 'src')
-rw-r--r--src/grid-snapper.h1
-rw-r--r--src/guide-snapper.h1
-rw-r--r--src/line-snapper.h3
-rw-r--r--src/object-snapper.h3
-rw-r--r--src/snap.cpp5
-rw-r--r--src/snap.h2
-rw-r--r--src/sp-namedview.cpp7
7 files changed, 12 insertions, 10 deletions
diff --git a/src/grid-snapper.h b/src/grid-snapper.h
index 73a1f2500..247823ac7 100644
--- a/src/grid-snapper.h
+++ b/src/grid-snapper.h
@@ -24,7 +24,6 @@ namespace Inkscape
class GridSnapper : public LineSnapper
{
public:
- GridSnapper() {}
GridSnapper(SPNamedView const *nv, NR::Coord const d);
private:
diff --git a/src/guide-snapper.h b/src/guide-snapper.h
index 654149f5c..f4c7b2de7 100644
--- a/src/guide-snapper.h
+++ b/src/guide-snapper.h
@@ -28,7 +28,6 @@ namespace Inkscape
class GuideSnapper : public LineSnapper
{
public:
- GuideSnapper() {}
GuideSnapper(SPNamedView const *nv, NR::Coord const d);
private:
diff --git a/src/line-snapper.h b/src/line-snapper.h
index 72afab76d..581466d33 100644
--- a/src/line-snapper.h
+++ b/src/line-snapper.h
@@ -19,14 +19,13 @@ namespace Inkscape
class LineSnapper : public Snapper
{
public:
- LineSnapper() {}
LineSnapper(SPNamedView const *nv, NR::Coord const d);
protected:
typedef std::list<std::pair<NR::Dim2, NR::Coord> > LineList;
private:
- virtual SnappedPoint _doFreeSnap(NR::Point const &p,
+ SnappedPoint _doFreeSnap(NR::Point const &p,
std::list<SPItem const *> const &it) const;
SnappedPoint _doConstrainedSnap(NR::Point const &p,
diff --git a/src/object-snapper.h b/src/object-snapper.h
index 98d457088..189e96e3e 100644
--- a/src/object-snapper.h
+++ b/src/object-snapper.h
@@ -25,7 +25,6 @@ namespace Inkscape
class ObjectSnapper : public Snapper
{
public:
- ObjectSnapper() {}
ObjectSnapper(SPNamedView const *nv, NR::Coord const d);
void setSnapToNodes(bool s) {
@@ -45,7 +44,7 @@ public:
}
private:
- virtual SnappedPoint _doFreeSnap(NR::Point const &p,
+ SnappedPoint _doFreeSnap(NR::Point const &p,
std::list<SPItem const *> const &it) const;
SnappedPoint _doConstrainedSnap(NR::Point const &p,
diff --git a/src/snap.cpp b/src/snap.cpp
index 940d4c772..452a1e496 100644
--- a/src/snap.cpp
+++ b/src/snap.cpp
@@ -21,6 +21,11 @@
#include <libnr/nr-scale-ops.h>
#include <libnr/nr-values.h>
+SnapManager::SnapManager(SPNamedView* v) : grid(v, 0), guide(v, 0), object(v, 0)
+{
+
+}
+
SnapManager::SnapperList SnapManager::getSnappers() const
{
SnapManager::SnapperList s;
diff --git a/src/snap.h b/src/snap.h
index 49c498789..c77e8df41 100644
--- a/src/snap.h
+++ b/src/snap.h
@@ -29,6 +29,8 @@ class SPNamedView;
class SnapManager
{
public:
+ SnapManager(SPNamedView* v);
+
bool willSnapSomething() const;
Inkscape::SnappedPoint freeSnap(Inkscape::Snapper::PointType t,
diff --git a/src/sp-namedview.cpp b/src/sp-namedview.cpp
index 4be180237..129ef2c8c 100644
--- a/src/sp-namedview.cpp
+++ b/src/sp-namedview.cpp
@@ -104,9 +104,6 @@ static void sp_namedview_class_init(SPNamedViewClass * klass)
static void sp_namedview_init(SPNamedView *nv)
{
- // explicitly call a contructor
- new(nv) SPNamedView();
-
nv->editable = TRUE;
nv->showgrid = FALSE;
nv->showguides = TRUE;
@@ -119,6 +116,8 @@ static void sp_namedview_init(SPNamedView *nv)
nv->default_layer_id = 0;
nv->connector_spacing = defaultConnSpacing;
+
+ new (&nv->snap_manager) SnapManager(nv);
}
static void sp_namedview_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr)
@@ -206,7 +205,7 @@ static void sp_namedview_release(SPObject *object)
((SPObjectClass *) parent_class)->release(object);
}
- namedview->~SPNamedView();
+ namedview->snap_manager.~SnapManager();
}
static void sp_namedview_set(SPObject *object, unsigned int key, const gchar *value)