diff --git a/src/sp-namedview.cpp b/src/sp-namedview.cpp
index 129ef2c8c9a0128faa73bb6487e14fbd725f031a..9c36b5057aa4df5f978a88e120914971b43816eb 100644 (file)
--- a/src/sp-namedview.cpp
+++ b/src/sp-namedview.cpp
#include "document.h"
#include "desktop-events.h"
#include "desktop-handles.h"
+#include "event-log.h"
#include "sp-guide.h"
#include "sp-item-group.h"
#include "sp-namedview.h"
@@ -221,6 +222,8 @@ static void sp_namedview_set(SPObject *object, unsigned int key, const gchar *va
case SP_ATTR_SHOWGRID:
nv->showgrid = sp_str_to_bool(value);
sp_namedview_setup_grid(nv);
+ /* Disable grid snaps if the grid is turned off */
+ nv->snap_manager.grid.setEnabled(nv->showgrid);
object->requestModified(SP_OBJECT_MODIFIED_FLAG);
break;
case SP_ATTR_SHOWGUIDES:
if (layer) {
desktop->setCurrentLayer(layer);
}
+
+ // FIXME: find a better place to do this
+ sp_desktop_document(desktop)->getEventLog().updateUndoVerbs();
}
void sp_namedview_document_from_window(SPDesktop *desktop)
NR::Rect const r = desktop->get_display_area();
// saving window geometry is not undoable
- gboolean saved = sp_document_get_undo_sensitive(sp_desktop_document(desktop));
- sp_document_set_undo_sensitive(sp_desktop_document(desktop), FALSE);
+ bool saved = sp_document_get_undo_sensitive(sp_desktop_document(desktop));
+ sp_document_set_undo_sensitive(sp_desktop_document(desktop), false);
sp_repr_set_svg_double(view, "inkscape:zoom", desktop->current_zoom());
sp_repr_set_svg_double(view, "inkscape:cx", r.midpoint()[NR::X]);
v = !v;
}
- gboolean saved = sp_document_get_undo_sensitive(doc);
- sp_document_set_undo_sensitive(doc, FALSE);
+ bool saved = sp_document_get_undo_sensitive(doc);
+ sp_document_set_undo_sensitive(doc, false);
sp_repr_set_boolean(repr, "showguides", v);
sp_repr_get_boolean(repr, "showgrid", &v);
v = !v;
- gboolean saved = sp_document_get_undo_sensitive(doc);
- sp_document_set_undo_sensitive(doc, FALSE);
+ bool saved = sp_document_get_undo_sensitive(doc);
+ sp_document_set_undo_sensitive(doc, false);
sp_repr_set_boolean(repr, "showgrid", v);