Fix crash when we copy a cel w/drag-and-drop and change cel properties

This is because Context::notifyActiveSiteChanged() wasn't called on
each onAdd/RemoveCel() events. This should fix several bugs.
This commit is contained in:
David Capello 2015-12-11 14:27:30 -03:00
parent f27836744f
commit 2f7e36a95e
3 changed files with 12 additions and 5 deletions

View File

@ -411,6 +411,16 @@ void DocumentView::onRemoveFrame(doc::DocumentEvent& ev)
}
}
void DocumentView::onAddCel(doc::DocumentEvent& ev)
{
UIContext::instance()->notifyActiveSiteChanged();
}
void DocumentView::onRemoveCel(doc::DocumentEvent& ev)
{
UIContext::instance()->notifyActiveSiteChanged();
}
void DocumentView::onTotalFramesChanged(doc::DocumentEvent& ev)
{
if (m_editor->frame() >= m_editor->sprite()->totalFrames()) {

View File

@ -69,6 +69,8 @@ namespace app {
void onBeforeRemoveLayer(doc::DocumentEvent& ev) override;
void onAddFrame(doc::DocumentEvent& ev) override;
void onRemoveFrame(doc::DocumentEvent& ev) override;
void onAddCel(doc::DocumentEvent& ev) override;
void onRemoveCel(doc::DocumentEvent& ev) override;
void onTotalFramesChanged(doc::DocumentEvent& ev) override;
void onLayerRestacked(doc::DocumentEvent& ev) override;

View File

@ -158,11 +158,6 @@ void ExpandCelCanvas::commit()
// And finally we add the cel again in the layer.
m_transaction.execute(new cmd::AddCel(m_layer, m_cel));
// As we've created the cel, the active context site has changed
// (context->site().cel() to be precise).
if (m_document->context())
m_document->context()->notifyActiveSiteChanged();
}
else if (m_celImage) {
// If the size of each image is the same, we can create an undo