summaryrefslogtreecommitdiffstats
path: root/src/extension/system.cpp
diff options
context:
space:
mode:
authorMenTaLguY <mental@rydia.net>2008-01-15 05:08:28 +0000
committermental <mental@users.sourceforge.net>2008-01-15 05:08:28 +0000
commite50d63f42224cdafece30d78265fb22482fd49d4 (patch)
tree2b292247e0809a34e169478ea94ad9b2947b51d8 /src/extension/system.cpp
parentabstract use of sodipodi:modified (diff)
downloadinkscape-e50d63f42224cdafece30d78265fb22482fd49d4.tar.gz
inkscape-e50d63f42224cdafece30d78265fb22482fd49d4.zip
stop toggling insensitive state for modification flag updates (fixes critical bug #182401)
In order to do this, I got rid of sodipodi:modified in favor of a simple flag in SPDocument, also renaming SPDocument::{set,is}Modified to SPDocument::{set,is}ModifiedSinceSave (bzr r4491)
Diffstat (limited to 'src/extension/system.cpp')
-rw-r--r--src/extension/system.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/extension/system.cpp b/src/extension/system.cpp
index 9b0c99010..b9976595a 100644
--- a/src/extension/system.cpp
+++ b/src/extension/system.cpp
@@ -104,10 +104,7 @@ open(Extension *key, gchar const *filename)
/* This kinda overkill as most of these are already set, but I want
to make sure for this release -- TJG */
- bool saved = sp_document_get_undo_sensitive(doc);
- sp_document_set_undo_sensitive(doc, false);
- doc->setModified(false);
- sp_document_set_undo_sensitive(doc, saved);
+ doc->setModifiedSinceSave(false);
sp_document_set_uri(doc, filename);
@@ -253,7 +250,7 @@ save(Extension *key, SPDocument *doc, gchar const *filename, bool setextension,
gchar *saved_dataloss = NULL;
gchar *saved_uri = NULL;
if (!official) {
- saved_modified = doc->isModified();
+ saved_modified = doc->isModifiedSinceSave();
if (repr->attribute("inkscape:output_extension")) {
saved_output_extension = g_strdup(repr->attribute("inkscape:output_extension"));
}
@@ -268,7 +265,6 @@ save(Extension *key, SPDocument *doc, gchar const *filename, bool setextension,
// update attributes:
bool saved = sp_document_get_undo_sensitive(doc);
sp_document_set_undo_sensitive (doc, false);
- doc->setModified(false);
// save the filename for next use
sp_document_set_uri(doc, fileName);
// also save the extension for next use
@@ -279,6 +275,7 @@ save(Extension *key, SPDocument *doc, gchar const *filename, bool setextension,
repr->setAttribute("inkscape:dataloss", "true");
}
sp_document_set_undo_sensitive (doc, saved);
+ doc->setModifiedSinceSave(false);
omod->save(doc, fileName);
@@ -286,11 +283,11 @@ save(Extension *key, SPDocument *doc, gchar const *filename, bool setextension,
if ( !official) {
saved = sp_document_get_undo_sensitive(doc);
sp_document_set_undo_sensitive (doc, false);
- doc->setModified(saved_modified);
repr->setAttribute("inkscape:output_extension", saved_output_extension);
repr->setAttribute("inkscape:dataloss", saved_dataloss);
sp_document_set_uri(doc, saved_uri);
sp_document_set_undo_sensitive (doc, saved);
+ doc->setModifiedSinceSave(saved_modified);
}
if (saved_output_extension) g_free(saved_output_extension);