diff options
| author | MenTaLguY <mental@rydia.net> | 2008-01-15 05:08:28 +0000 |
|---|---|---|
| committer | mental <mental@users.sourceforge.net> | 2008-01-15 05:08:28 +0000 |
| commit | e50d63f42224cdafece30d78265fb22482fd49d4 (patch) | |
| tree | 2b292247e0809a34e169478ea94ad9b2947b51d8 /src/extension/system.cpp | |
| parent | abstract use of sodipodi:modified (diff) | |
| download | inkscape-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.cpp | 11 |
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); |
