diff --git a/CHANGELOG.md b/CHANGELOG.md index a2b6a7c7a..6e6c6031a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## [v0.8.1] - Unreleased ### Fixed -- Crash where Pixelorama could not load a cached sub-resource - [Issue #339](https://github.com/Orama-Interactive/Pixelorama/issues/339) +- Fixed crash where Pixelorama could not load a cached sub-resource - [Issue #339](https://github.com/Orama-Interactive/Pixelorama/issues/339) - When moving tabs, the projects now move along with their respective tabs. +- Fixed crash where the animation was playing in the mini canvas preview and then the user switched to a project with less frames.

## [v0.8] - 2020-09-23 diff --git a/src/UI/Canvas/CanvasPreview.gd b/src/UI/Canvas/CanvasPreview.gd index 193037346..8eb5b358c 100644 --- a/src/UI/Canvas/CanvasPreview.gd +++ b/src/UI/Canvas/CanvasPreview.gd @@ -6,6 +6,9 @@ onready var animation_timer : Timer = $AnimationTimer func _draw() -> void: var current_project : Project = Global.current_project + if frame >= current_project.frames.size(): + frame = current_project.current_frame + $AnimationTimer.wait_time = Global.animation_timer.wait_time if animation_timer.is_stopped(): diff --git a/src/UI/Canvas/CanvasPreview.tscn b/src/UI/Canvas/CanvasPreview.tscn index f9b249b69..7d057882c 100644 --- a/src/UI/Canvas/CanvasPreview.tscn +++ b/src/UI/Canvas/CanvasPreview.tscn @@ -1,39 +1,9 @@ [gd_scene load_steps=2 format=2] -[sub_resource type="GDScript" id=1] -script/source = "extends Node2D - - -var frame : int = 0 -onready var animation_timer : Timer = $AnimationTimer - -func _draw() -> void: - var current_project : Project = Global.current_project - $AnimationTimer.wait_time = Global.animation_timer.wait_time - - if animation_timer.is_stopped(): - frame = current_project.current_frame - var current_cels : Array = current_project.frames[frame].cels - - # Draw current frame layers - for i in range(current_cels.size()): - var modulate_color := Color(1, 1, 1, current_cels[i].opacity) - if i < current_project.layers.size() and current_project.layers[i].visible: - draw_texture(current_cels[i].image_texture, Vector2.ZERO, modulate_color) - - -func _on_AnimationTimer_timeout() -> void: - var current_project : Project = Global.current_project - - if frame < current_project.frames.size() - 1: - frame += 1 - else: - frame = 0 - update() -" +[ext_resource path="res://src/UI/Canvas/CanvasPreview.gd" type="Script" id=1] [node name="CanvasPreview" type="Node2D"] -script = SubResource( 1 ) +script = ExtResource( 1 ) [node name="AnimationTimer" type="Timer" parent="."] [connection signal="timeout" from="AnimationTimer" to="." method="_on_AnimationTimer_timeout"]