Redraw Timeline when layer/cel user color is changed

This commit is contained in:
David Capello 2015-12-22 13:18:08 -03:00
parent e8ecbbb4d7
commit 4c58441823
2 changed files with 20 additions and 3 deletions

View File

@ -167,8 +167,13 @@ private:
if (newOpacity != m_cel->opacity())
transaction.execute(new cmd::SetCelOpacity(writer.cel(), newOpacity));
if (m_userData != m_cel->data()->userData())
if (m_userData != m_cel->data()->userData()) {
transaction.execute(new cmd::SetUserData(writer.cel()->data(), m_userData));
// Redraw timeline because the cel's user data/color
// might have changed.
App::instance()->getMainWindow()->getTimeline()->invalidate();
}
}
else {
for (Cel* cel : m_document->sprite()->uniqueCels()) {
@ -178,8 +183,13 @@ private:
transaction.execute(new cmd::SetCelOpacity(cel, newOpacity));
}
if (m_userData != cel->data()->userData())
if (m_userData != cel->data()->userData()) {
transaction.execute(new cmd::SetUserData(cel->data(), m_userData));
// Redraw timeline because the cel's user data/color
// might have changed.
App::instance()->getMainWindow()->getTimeline()->invalidate();
}
}
}

View File

@ -19,6 +19,8 @@
#include "app/context_access.h"
#include "app/modules/gui.h"
#include "app/transaction.h"
#include "app/ui/main_window.h"
#include "app/ui/timeline.h"
#include "app/ui/user_data_popup.h"
#include "app/ui_context.h"
#include "base/bind.h"
@ -193,9 +195,14 @@ private:
if (newBlendMode != m_layer->blendMode())
transaction.execute(new cmd::SetLayerBlendMode(static_cast<LayerImage*>(writer.layer()), newBlendMode));
if (m_userData != m_layer->userData())
if (m_userData != m_layer->userData()) {
transaction.execute(new cmd::SetUserData(writer.layer(), m_userData));
// Redraw timeline because the layer's user data/color
// might have changed.
App::instance()->getMainWindow()->getTimeline()->invalidate();
}
transaction.commit();
}
catch (const std::exception& e) {