diff options
| author | Martin Owens <doctormo@gmail.com> | 2014-02-28 15:50:05 +0000 |
|---|---|---|
| committer | Martin Owens <doctormo@gmail.com> | 2014-02-28 15:50:05 +0000 |
| commit | 1bc1b442d8ec6f394f456c4675d5ca7f6aa1d0d6 (patch) | |
| tree | 0b4c86988abeb6c01b23324f159bd0a8a936f485 /src/ui/dialog | |
| parent | Improved uri testing (diff) | |
| parent | Spray tool: (diff) | |
| download | inkscape-1bc1b442d8ec6f394f456c4675d5ca7f6aa1d0d6.tar.gz inkscape-1bc1b442d8ec6f394f456c4675d5ca7f6aa1d0d6.zip | |
Merge to trunk
(bzr r13047.1.7)
Diffstat (limited to 'src/ui/dialog')
| -rw-r--r-- | src/ui/dialog/swatches.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/ui/dialog/swatches.cpp b/src/ui/dialog/swatches.cpp index 3f161ad28..807618b4d 100644 --- a/src/ui/dialog/swatches.cpp +++ b/src/ui/dialog/swatches.cpp @@ -746,7 +746,7 @@ class DocTrack { public: DocTrack(SPDocument *doc, sigc::connection &gradientRsrcChanged, sigc::connection &defsChanged, sigc::connection &defsModified) : - doc(doc), + doc(doc->doRef()), updatePending(false), lastGradientUpdate(0.0), gradientRsrcChanged(gradientRsrcChanged), @@ -776,6 +776,8 @@ public: gradientRsrcChanged.disconnect(); defsChanged.disconnect(); defsModified.disconnect(); + doc->doUnref(); + doc = NULL; } } @@ -858,7 +860,7 @@ bool DocTrack::queueUpdateIfNeeded( SPDocument *doc ) void SwatchesPanel::_trackDocument( SwatchesPanel *panel, SPDocument *document ) { - SPDocument *oldDoc = 0; + SPDocument *oldDoc = NULL; if (docPerPanel.find(panel) != docPerPanel.end()) { oldDoc = docPerPanel[panel]; if (!oldDoc) { @@ -867,7 +869,7 @@ void SwatchesPanel::_trackDocument( SwatchesPanel *panel, SPDocument *document ) } if (oldDoc != document) { if (oldDoc) { - docPerPanel[panel] = 0; + docPerPanel[panel] = NULL; bool found = false; for (std::map<SwatchesPanel*, SPDocument*>::iterator it = docPerPanel.begin(); (it != docPerPanel.end()) && !found; ++it) { found = (it->second == document); @@ -905,11 +907,6 @@ void SwatchesPanel::_trackDocument( SwatchesPanel *panel, SPDocument *document ) } } } - - std::set<SPDocument*> docs; - for (std::map<SwatchesPanel*, SPDocument*>::iterator it = docPerPanel.begin(); it != docPerPanel.end(); ++it) { - docs.insert(it->second); - } } void SwatchesPanel::_setDocument( SPDocument *document ) |
