1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-02-07 10:59:49 +00:00

Fix canvas not immediately updating when adding/removing 3D objects

This commit is contained in:
Emmanouil Papadeas 2023-10-23 01:54:36 +03:00
parent ff8f06bd47
commit 895636272b
2 changed files with 8 additions and 3 deletions

View file

@ -589,7 +589,7 @@ func undo_or_redo(
general_undo(project) general_undo(project)
else: else:
general_redo(project) general_redo(project)
var action_name: String = project.undo_redo.get_current_action_name() var action_name := project.undo_redo.get_current_action_name()
if ( if (
action_name action_name
in [ in [
@ -615,7 +615,7 @@ func undo_or_redo(
if action_name == "Scale": if action_name == "Scale":
for i in project.frames.size(): for i in project.frames.size():
for j in project.layers.size(): for j in project.layers.size():
var current_cel: BaseCel = project.frames[i].cels[j] var current_cel := project.frames[i].cels[j]
if current_cel is Cel3D: if current_cel is Cel3D:
current_cel.size_changed(project.size) current_cel.size_changed(project.size)
else: else:
@ -628,6 +628,7 @@ func undo_or_redo(
project.selection_map_changed() project.selection_map_changed()
cursor_position_label.text = "[%s×%s]" % [project.size.x, project.size.y] cursor_position_label.text = "[%s×%s]" % [project.size.x, project.size.y]
await RenderingServer.frame_post_draw
canvas.queue_redraw() canvas.queue_redraw()
second_viewport.get_child(0).get_node("CanvasPreview").queue_redraw() second_viewport.get_child(0).get_node("CanvasPreview").queue_redraw()
canvas_preview_container.canvas_preview.queue_redraw() canvas_preview_container.canvas_preview.queue_redraw()

View file

@ -528,9 +528,13 @@ func change_cel(new_frame: int, new_layer := -1) -> void:
layers[current_layer].blend_mode layers[current_layer].blend_mode
) )
Global.animation_timeline.blend_modes_button.selected = blend_mode_index Global.animation_timeline.blend_modes_button.selected = blend_mode_index
Global.canvas.queue_redraw()
Global.transparent_checker.update_rect() Global.transparent_checker.update_rect()
Global.cel_changed.emit() Global.cel_changed.emit()
if get_current_cel() is Cel3D:
await RenderingServer.frame_post_draw
await RenderingServer.frame_post_draw
Global.canvas.queue_redraw()
func toggle_frame_buttons() -> void: func toggle_frame_buttons() -> void: