diff --git a/src/sp-namedview.cpp b/src/sp-namedview.cpp
index 0368262dcc2eef5df8749aa4a08170564db81a9f..cc7adeaa8250ed8ab1a2f089aa44dca94033bdf7 100644 (file)
--- a/src/sp-namedview.cpp
+++ b/src/sp-namedview.cpp
*/
#include "config.h"
+#include <cstring>
+#include <string>
#include "display/canvas-grid.h"
#include "helper/units.h"
// delete grids:
while ( namedview->grids ) {
- Inkscape::CanvasGrid *gr = (Inkscape::CanvasGrid *)namedview->grids->data;
+ Inkscape::CanvasGrid *gr = (Inkscape::CanvasGrid *)namedview->grids->data; // get first entry
delete gr;
- namedview->grids = g_slist_remove_link(namedview->grids, namedview->grids);
+ namedview->grids = g_slist_remove_link(namedview->grids, namedview->grids); // deletes first entry
}
if (((SPObjectClass *) parent_class)->release) {
@@ -575,6 +577,10 @@ sp_namedview_add_grid(SPNamedView *nv, Inkscape::XML::Node *repr, SPDesktop *des
doc = sp_desktop_document(desktop);
else
doc = sp_desktop_document(static_cast<SPDesktop*>(nv->views->data));
+ if (!doc) {
+ g_warning("sp_namedview_add_grid - how come doc is null here?!");
+ return NULL;
+ }
grid = Inkscape::CanvasGrid::NewGrid(nv, repr, doc, gridtype);
nv->grids = g_slist_append(nv->grids, grid);
//Initialize the snapping parameters for the new grid
}
views = g_slist_remove(views, desktop);
-
- // delete grids:
- while ( grids ) {
- Inkscape::CanvasGrid *gr = (Inkscape::CanvasGrid *)grids->data;
- delete gr;
- grids = g_slist_remove_link(grids, grids);
- }
}
void SPNamedView::activateGuides(gpointer desktop, gboolean active)
bool saved = sp_document_get_undo_sensitive(doc);
sp_document_set_undo_sensitive(doc, false);
-
sp_repr_set_boolean(repr, "showguides", v);
-
- doc->setModified();
sp_document_set_undo_sensitive(doc, saved);
+
+ doc->setModifiedSinceSave();
}
void sp_namedview_show_grids(SPNamedView * namedview, bool show, bool dirty_document)
@@ -897,15 +895,14 @@ void sp_namedview_show_grids(SPNamedView * namedview, bool show, bool dirty_docu
bool saved = sp_document_get_undo_sensitive(doc);
sp_document_set_undo_sensitive(doc, false);
-
sp_repr_set_boolean(repr, "showgrid", namedview->grids_visible);
+ sp_document_set_undo_sensitive(doc, saved);
/* we don't want the document to get dirty on startup; that's when
we call this function with dirty_document = false */
if (dirty_document) {
- doc->setModified();
+ doc->setModifiedSinceSave();
}
- sp_document_set_undo_sensitive(doc, saved);
}
gchar const *SPNamedView::getName() const