mirror of
https://github.com/aseprite/aseprite.git
synced 2025-02-24 03:40:14 +00:00
Fix click behavior in PART_HEADER_EYE/PADLOCK in Timeline
We have to switch the visible/editable status only in the top level of layers.
This commit is contained in:
parent
b65bd4cd55
commit
7a19167d61
@ -618,12 +618,18 @@ bool Timeline::onProcessMessage(Message* msg)
|
||||
break;
|
||||
|
||||
case PART_HEADER_EYE: {
|
||||
ASSERT(m_sprite);
|
||||
if (!m_sprite)
|
||||
break;
|
||||
|
||||
bool newVisibleState = !allLayersVisible();
|
||||
for (size_t i=0; i<m_layers.size(); i++) {
|
||||
m_layers[i].layer->setVisible(newVisibleState);
|
||||
if (m_layers[i].layer->isGroup())
|
||||
for (Layer* topLayer : m_sprite->root()->layers()) {
|
||||
if (topLayer->isVisible() != newVisibleState) {
|
||||
topLayer->setVisible(newVisibleState);
|
||||
if (topLayer->isGroup())
|
||||
regenLayers = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Redraw all views.
|
||||
m_document->notifyGeneralUpdate();
|
||||
@ -631,12 +637,18 @@ bool Timeline::onProcessMessage(Message* msg)
|
||||
}
|
||||
|
||||
case PART_HEADER_PADLOCK: {
|
||||
ASSERT(m_sprite);
|
||||
if (!m_sprite)
|
||||
break;
|
||||
|
||||
bool newEditableState = !allLayersUnlocked();
|
||||
for (size_t i=0; i<m_layers.size(); i++) {
|
||||
m_layers[i].layer->setEditable(newEditableState);
|
||||
if (m_layers[i].layer->isGroup())
|
||||
for (Layer* topLayer : m_sprite->root()->layers()) {
|
||||
if (topLayer->isEditable() != newEditableState) {
|
||||
topLayer->setEditable(newEditableState);
|
||||
if (topLayer->isGroup())
|
||||
regenLayers = true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@ -2462,8 +2474,8 @@ gfx::Point Timeline::getMaxScrollablePos() const
|
||||
|
||||
bool Timeline::allLayersVisible()
|
||||
{
|
||||
for (size_t i=0; i<m_layers.size(); i++)
|
||||
if (!m_layers[i].layer->isVisible())
|
||||
for (Layer* topLayer : m_sprite->root()->layers())
|
||||
if (!topLayer->isVisible())
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@ -2471,8 +2483,8 @@ bool Timeline::allLayersVisible()
|
||||
|
||||
bool Timeline::allLayersInvisible()
|
||||
{
|
||||
for (size_t i=0; i<m_layers.size(); i++)
|
||||
if (m_layers[i].layer->isVisible())
|
||||
for (Layer* topLayer : m_sprite->root()->layers())
|
||||
if (topLayer->isVisible())
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@ -2480,8 +2492,8 @@ bool Timeline::allLayersInvisible()
|
||||
|
||||
bool Timeline::allLayersLocked()
|
||||
{
|
||||
for (size_t i=0; i<m_layers.size(); i++)
|
||||
if (m_layers[i].layer->isEditable())
|
||||
for (Layer* topLayer : m_sprite->root()->layers())
|
||||
if (topLayer->isEditable())
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@ -2489,8 +2501,8 @@ bool Timeline::allLayersLocked()
|
||||
|
||||
bool Timeline::allLayersUnlocked()
|
||||
{
|
||||
for (size_t i=0; i<m_layers.size(); i++)
|
||||
if (!m_layers[i].layer->isEditable())
|
||||
for (Layer* topLayer : m_sprite->root()->layers())
|
||||
if (!topLayer->isEditable())
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user