| 1087 | } |
| 1088 | |
| 1089 | void Timeline::onAfterRemoveLayer(doc::DocumentEvent& ev) |
| 1090 | { |
| 1091 | Sprite* sprite = ev.sprite(); |
| 1092 | Layer* layer = ev.layer(); |
| 1093 | |
| 1094 | // If the layer that was removed is the selected one |
| 1095 | if (layer == getLayer()) { |
| 1096 | LayerFolder* parent = layer->parent(); |
| 1097 | Layer* layer_select = NULL; |
| 1098 | |
| 1099 | // Select previous layer, or next layer, or the parent (if it is |
| 1100 | // not the main layer of sprite set). |
| 1101 | if (layer->getPrevious()) |
| 1102 | layer_select = layer->getPrevious(); |
| 1103 | else if (layer->getNext()) |
| 1104 | layer_select = layer->getNext(); |
| 1105 | else if (parent != sprite->folder()) |
| 1106 | layer_select = parent; |
| 1107 | |
| 1108 | setLayer(layer_select); |
| 1109 | } |
| 1110 | |
| 1111 | regenerateLayers(); |
| 1112 | showCurrentCel(); |
| 1113 | invalidate(); |
| 1114 | } |
| 1115 | |
| 1116 | void Timeline::onAddFrame(doc::DocumentEvent& ev) |
| 1117 | { |