diff --git a/src/ui/view/view.cpp b/src/ui/view/view.cpp
index 6b6e0b8b629999b620fe30fa39504ff3552f2de1..1b498a846ec018112149d37bbeb6dd1ce5ded556 100644 (file)
--- a/src/ui/view/view.cpp
+++ b/src/ui/view/view.cpp
*/
View::~View()
{
- if (_doc) {
- inkscape_remove_document(_doc);
- }
_close();
}
if (_doc) {
_document_uri_set_connection.disconnect();
_document_resized_connection.disconnect();
- _doc = 0;
+ if (inkscape_remove_document(_doc)) {
+ // this was the last view of this document, so delete it
+ delete _doc;
+ }
+ _doc = NULL;
}
Inkscape::Verb::delete_all_view (this);
_position_set_signal.emit (x,y);
}
-void View::setPosition(NR::Point const &p)
+void View::setPosition(Geom::Point const &p)
{
- setPosition (double(p[NR::X]), double(p[NR::Y]));
+ setPosition (double(p[Geom::X]), double(p[Geom::Y]));
}
void View::emitResized (double width, double height)
if (_doc) {
_document_uri_set_connection.disconnect();
_document_resized_connection.disconnect();
- inkscape_remove_document(_doc);
+ if (inkscape_remove_document(_doc)) {
+ // this was the last view of this document, so delete it
+ delete _doc;
+ }
}
inkscape_add_document(doc);