If the animation starts playing on a frame outside a tag, the animation will not limit itself to the tags later on as it plays. The animation will play only on a tag, if it started on a frame which has that tag. I also made it react to frame and tag changes, if they happen while the animation is running.
I also added a play_animation() method in AnimationTimeline.gd, to reduce duplicate code found in _on_PlayForward_toggled() and _on_PlayBackwards_toggled()
Removed some code from FrameButton.gd since it's used in AnimationTimeline.gd, and removed the Global.hidden_canvases array, as... it did nothing? I don't remember what I made it for, I think it was for UndoRedo purposes but it's seems to be working fine without it.
Caused in CreateNewImage.gd, Global.current_layer = 0 should be under Global.canvas gets set to a new canvas, and after its _ready() method gets executed. The crash occurred when a layer above 0 had transparency less than 100, and a new image was created. _on_OpacitySlider_value_changed() in AnimationTimeline.gd was executed on the old canvas right before it was destroyed, while Global.layers had been cleared.
Also removed _on_OpacitySlider_value_changed() from Main.gd, it served no purpose there.
You can add tags by right clicking on a cel and selecting "Add Frame Tag". No tag modifying and deletion is implemented yet.
I'm using a different ScrollContainer for the tags, which gets updated everytime the main timeline ScrollContainer gets updated. I hide its sliders from its theme, wish there was a more straightforward way.
The onion skinning button replaces the old onion skinning area of the timeline, but there's no way right now to change the settings. This will be added in a future commit. More UI changes will soon follow.
Trying to merge layers into the timeline, and eventually add more features like "share layer with all frames", among others. THIS IS NOT FINISHED, IT WILL *NOT* WORK PROPERLY. Once it is finished, this branch will be merged onto master.
So far only add layer and add frame work, and even they may have some issues. Undoing also does not work properly yet.
The UI is also not finished, as it currently has problems with the scroll containers.