summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/document-undo.cpp7
-rw-r--r--src/document.cpp3
2 files changed, 9 insertions, 1 deletions
diff --git a/src/document-undo.cpp b/src/document-undo.cpp
index eb0ac7707..c27904ea8 100644
--- a/src/document-undo.cpp
+++ b/src/document-undo.cpp
@@ -196,6 +196,7 @@ void Inkscape::DocumentUndo::cancel(SPDocument *doc)
if (doc->priv->partial) {
sp_repr_undo_log (doc->priv->partial);
+ doc->emitReconstructionFinish();
sp_repr_free_log (doc->priv->partial);
doc->priv->partial = NULL;
}
@@ -222,6 +223,8 @@ static void perform_document_update(SPDocument &doc) {
doc.ensureUpToDate();
Inkscape::XML::Event *update_log=sp_repr_commit_undoable(doc.rdoc);
+ doc.emitReconstructionFinish();
+
if (update_log != NULL) {
g_warning("Document was modified while being updated after undo operation");
sp_repr_debug_print_log(update_log);
@@ -322,8 +325,10 @@ gboolean Inkscape::DocumentUndo::redo(SPDocument *doc)
doc->priv->sensitive = TRUE;
doc->priv->seeking = false;
- if (ret)
+ if (ret) {
INKSCAPE.external_change();
+ doc->emitReconstructionFinish();
+ }
return ret;
}
diff --git a/src/document.cpp b/src/document.cpp
index 902dabbc3..9f408788b 100644
--- a/src/document.cpp
+++ b/src/document.cpp
@@ -955,6 +955,9 @@ SPDocument::emitReconstructionFinish(void)
{
// printf("Finishing Reconstruction\n");
priv->_reconstruction_finish_signal.emit();
+ // indicates that gradients are reloaded (to rebuild the Auto palette)
+ priv->resources_changed_signals[g_quark_from_string("gradient")].emit();
+
/**
// Reference to the old persp3d object is invalid after reconstruction.