summaryrefslogtreecommitdiffstats
path: root/src/sp-polygon.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sp-polygon.cpp')
-rw-r--r--src/sp-polygon.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/sp-polygon.cpp b/src/sp-polygon.cpp
index 7f9192839..dd09663c7 100644
--- a/src/sp-polygon.cpp
+++ b/src/sp-polygon.cpp
@@ -25,7 +25,7 @@
#include "xml/repr.h"
#include "document.h"
-G_DEFINE_TYPE(SPPolygon, sp_polygon, SP_TYPE_SHAPE);
+G_DEFINE_TYPE(SPPolygon, sp_polygon, G_TYPE_OBJECT);
static void sp_polygon_class_init(SPPolygonClass *pc)
{
@@ -38,8 +38,9 @@ CPolygon::CPolygon(SPPolygon* polygon) : CShape(polygon) {
CPolygon::~CPolygon() {
}
-static void sp_polygon_init(SPPolygon *polygon)
-{
+SPPolygon::SPPolygon() : SPShape() {
+ SPPolygon* polygon = this;
+
polygon->cpolygon = new CPolygon(polygon);
polygon->typeHierarchy.insert(typeid(SPPolygon));
@@ -50,6 +51,11 @@ static void sp_polygon_init(SPPolygon *polygon)
polygon->cobject = polygon->cpolygon;
}
+static void sp_polygon_init(SPPolygon *polygon)
+{
+ new (polygon) SPPolygon();
+}
+
void CPolygon::build(SPDocument *document, Inkscape::XML::Node *repr) {
SPPolygon* object = this->sppolygon;