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/ui | |
| 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/ui')
| -rw-r--r-- | src/ui/view/edit-widget.cpp | 2 | ||||
| -rw-r--r-- | src/ui/widget/registered-widget.cpp | 8 | ||||
| -rw-r--r-- | src/ui/widget/tolerance-slider.cpp | 3 |
3 files changed, 7 insertions, 6 deletions
diff --git a/src/ui/view/edit-widget.cpp b/src/ui/view/edit-widget.cpp index 78cf76096..9ac6aeefd 100644 --- a/src/ui/view/edit-widget.cpp +++ b/src/ui/view/edit-widget.cpp @@ -1203,7 +1203,7 @@ EditWidget::shutdown() return false; SPDocument *doc = _desktop->doc(); - if (doc->isModified()) { + if (doc->isModifiedSinceSave()) { gchar *markup; /// \todo FIXME !!! obviously this will have problems if the document /// name contains markup characters diff --git a/src/ui/widget/registered-widget.cpp b/src/ui/widget/registered-widget.cpp index 84d53663b..1364e5a2a 100644 --- a/src/ui/widget/registered-widget.cpp +++ b/src/ui/widget/registered-widget.cpp @@ -67,11 +67,10 @@ RegisteredWidget::write_to_xml(const char * svgstr) bool saved = sp_document_get_undo_sensitive (local_doc); sp_document_set_undo_sensitive (local_doc, false); - if (!write_undo) local_repr->setAttribute(_key.c_str(), svgstr); - local_doc->setModified(); - sp_document_set_undo_sensitive (local_doc, saved); + + local_doc->setModifiedSinceSave(); if (write_undo) { local_repr->setAttribute(_key.c_str(), svgstr); sp_document_done (local_doc, event_type, event_description); @@ -378,8 +377,9 @@ RegisteredColorPicker::on_changed (guint32 rgba) sp_document_set_undo_sensitive (local_doc, false); local_repr->setAttribute(_ckey.c_str(), c); sp_repr_set_css_double(local_repr, _akey.c_str(), (rgba & 0xff) / 255.0); - local_doc->setModified(); sp_document_set_undo_sensitive (local_doc, saved); + + local_doc->setModifiedSinceSave(); sp_document_done (local_doc, SP_VERB_NONE, /* TODO: annotate */ "registered-widget.cpp: RegisteredColorPicker::on_changed"); diff --git a/src/ui/widget/tolerance-slider.cpp b/src/ui/widget/tolerance-slider.cpp index 1c5f9b521..0110a6c4c 100644 --- a/src/ui/widget/tolerance-slider.cpp +++ b/src/ui/widget/tolerance-slider.cpp @@ -179,8 +179,9 @@ ToleranceSlider::update (double val) sp_document_set_undo_sensitive (doc, false); Inkscape::XML::Node *repr = SP_OBJECT_REPR (sp_desktop_namedview(dt)); repr->setAttribute(_key.c_str(), os.str().c_str()); - doc->setModified(); sp_document_set_undo_sensitive (doc, saved); + + doc->setModifiedSinceSave(); _wr->setUpdating (false); } |
