From 0a615298f54528428c6a201367cf0c40a29275f7 Mon Sep 17 00:00:00 2001 From: Emmanouil Papadeas Date: Thu, 19 Jan 2023 02:13:22 +0200 Subject: [PATCH] Fix issue with selection resizing from the tool options + minor code cleaning Removed the temp_bitmap variable completely, as it's not really needed. --- src/UI/Canvas/Selection.gd | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/src/UI/Canvas/Selection.gd b/src/UI/Canvas/Selection.gd index 5a655f097..0023a9ef5 100644 --- a/src/UI/Canvas/Selection.gd +++ b/src/UI/Canvas/Selection.gd @@ -11,7 +11,6 @@ var is_pasting := false var big_bounding_rectangle := Rect2() setget _big_bounding_rectangle_changed var temp_rect := Rect2() -var temp_bitmap := SelectionMap.new() var rect_aspect_ratio := 0.0 var temp_rect_size := Vector2.ZERO var temp_rect_pivot := Vector2.ZERO @@ -108,7 +107,6 @@ func _input(event: InputEvent) -> void: if Input.is_action_pressed("transform_move_selection_only"): undo_data = get_undo_data(false) temp_rect = big_bounding_rectangle - temp_bitmap = project.selection_map else: transform_content_start() project.selection_offset = Vector2.ZERO @@ -364,7 +362,9 @@ func _resize_rect(pos: Vector2, dir: Vector2) -> void: func resize_selection() -> void: var size := big_bounding_rectangle.size.abs() + var selection_map: SelectionMap = Global.current_project.selection_map if is_moving_content: + selection_map = original_bitmap preview_image.copy_from(original_preview_image) preview_image.resize(size.x, size.y, Image.INTERPOLATE_NEAREST) if temp_rect.size.x < 0: @@ -373,12 +373,12 @@ func resize_selection() -> void: preview_image.flip_y() preview_image_texture.create_from_image(preview_image, 0) - var temp_bitmap_copy := SelectionMap.new() - temp_bitmap_copy.copy_from(temp_bitmap) - temp_bitmap_copy.resize_bitmap_values( + var selection_map_copy := SelectionMap.new() + selection_map_copy.copy_from(selection_map) + selection_map_copy.resize_bitmap_values( Global.current_project, size, temp_rect.size.x < 0, temp_rect.size.y < 0 ) - Global.current_project.selection_map = temp_bitmap_copy + Global.current_project.selection_map = selection_map_copy Global.current_project.selection_map_changed() update() @@ -486,7 +486,6 @@ func transform_content_start() -> void: return undo_data = get_undo_data(true) temp_rect = big_bounding_rectangle - temp_bitmap = Global.current_project.selection_map _get_preview_image() if original_preview_image.is_empty(): undo_data = get_undo_data(false) @@ -510,7 +509,6 @@ func transform_content_confirm() -> void: var cel_image: Image = cel.get_image() var src: Image = preview_image if not is_pasting: - src = Image.new() src.copy_from(cel.transformed_content) cel.transformed_content = null src.resize( @@ -778,14 +776,12 @@ func paste(in_place := false) -> void: project.selection_map.move_bitmap_values(Global.current_project, false) self.big_bounding_rectangle = big_bounding_rectangle - temp_bitmap = project.selection_map temp_rect = big_bounding_rectangle is_moving_content = true is_pasting = true original_preview_image = clipboard.image preview_image.copy_from(original_preview_image) preview_image_texture.create_from_image(preview_image, 0) - project.selection_map_changed() @@ -840,8 +836,7 @@ func new_brush() -> void: selection_map_copy.copy_from(project.selection_map) selection_map_copy.move_bitmap_values(project, false) var clipboard = str2var(OS.get_clipboard()) - if typeof(clipboard) == TYPE_DICTIONARY: - # A sanity check + if typeof(clipboard) == TYPE_DICTIONARY: # A sanity check if not clipboard.has_all( ["image", "selection_map", "big_bounding_rectangle", "selection_offset"] ): @@ -854,7 +849,7 @@ func new_brush() -> void: for x in brush.get_size().x: for y in brush.get_size().y: var pos := Vector2(x, y) - var offset_pos = big_bounding_rectangle.position + var offset_pos := big_bounding_rectangle.position if offset_pos.x < 0: offset_pos.x = 0 if offset_pos.y < 0: @@ -870,10 +865,9 @@ func new_brush() -> void: func select_all() -> void: - var project: Project = Global.current_project var undo_data_tmp := get_undo_data(false) clear_selection() - var full_rect := Rect2(Vector2.ZERO, project.size) + var full_rect := Rect2(Vector2.ZERO, Global.current_project.size) select_rect(full_rect) commit_undo("Select", undo_data_tmp) @@ -947,7 +941,7 @@ func _get_preview_image() -> void: cel_image.blit_rect_mask( clear_image, cel.transformed_content, - Rect2(Vector2.ZERO, Global.current_project.selection_map.get_size()), + Rect2(Vector2.ZERO, project.selection_map.get_size()), big_bounding_rectangle.position ) for cel_index in project.selected_cels: