diff --git a/src/app/cmd/copy_cel.cpp b/src/app/cmd/copy_cel.cpp index 395a1eccb..634de732d 100644 --- a/src/app/cmd/copy_cel.cpp +++ b/src/app/cmd/copy_cel.cpp @@ -1,5 +1,5 @@ // Aseprite -// Copyright (C) 2019 Igara Studio S.A. +// Copyright (C) 2019-2020 Igara Studio S.A. // Copyright (C) 2001-2016 David Capello // // This program is distributed under the terms of @@ -125,7 +125,11 @@ void CopyCel::onFireNotifications() { CmdSequence::onFireNotifications(); - ASSERT(m_srcLayer.layer()); + // The m_srcLayer can be nullptr now because the layer from where we + // copied this cel might not exist anymore (e.g. if we copied the + // cel from another document that is already closed) + //ASSERT(m_srcLayer.layer()); + ASSERT(m_dstLayer.layer()); static_cast(m_dstLayer.layer()->sprite()->document()) diff --git a/src/app/doc.cpp b/src/app/doc.cpp index db4882f3f..52eb2ff5a 100644 --- a/src/app/doc.cpp +++ b/src/app/doc.cpp @@ -228,7 +228,7 @@ void Doc::notifyLayerMergedDown(Layer* srcLayer, Layer* targetLayer) void Doc::notifyCelMoved(Layer* fromLayer, frame_t fromFrame, Layer* toLayer, frame_t toFrame) { DocEvent ev(this); - ev.sprite(fromLayer->sprite()); + ev.sprite(toLayer->sprite()); ev.layer(fromLayer); ev.frame(fromFrame); ev.targetLayer(toLayer); @@ -239,8 +239,8 @@ void Doc::notifyCelMoved(Layer* fromLayer, frame_t fromFrame, Layer* toLayer, fr void Doc::notifyCelCopied(Layer* fromLayer, frame_t fromFrame, Layer* toLayer, frame_t toFrame) { DocEvent ev(this); - ev.sprite(fromLayer->sprite()); - ev.layer(fromLayer); + ev.sprite(toLayer->sprite()); + ev.layer(fromLayer); // From layer can be nullptr ev.frame(fromFrame); ev.targetLayer(toLayer); ev.targetFrame(toFrame);