mirror of
https://github.com/Orama-Interactive/Pixelorama.git
synced 2025-02-20 12:33:14 +00:00
Do not clear content from selection in selected cels when moving if Alt has been pressed beforehand
This is about Alt + mouse click when moving a selection. See https://github.com/Orama-Interactive/Pixelorama/issues/129#issuecomment-756799706 for more info
This commit is contained in:
parent
5b74a4292d
commit
f5d07e660d
2 changed files with 10 additions and 6 deletions
|
@ -85,6 +85,7 @@ func draw_start(position : Vector2) -> void:
|
|||
_move_content = true
|
||||
if Tools.alt: # Move the selection without cutting it from the original position / makes a quick copy of it
|
||||
selection_node.transform_content_confirm()
|
||||
selection_node.clear_in_selected_cels = false
|
||||
selection_node.transform_content_start()
|
||||
if Tools.alt: # Continuation of the above
|
||||
var cel_image : Image = project.frames[project.current_frame].cels[project.current_layer].image
|
||||
|
|
|
@ -63,6 +63,7 @@ var gizmos := [] # Array of Gizmos
|
|||
var dragged_gizmo : Gizmo = null
|
||||
var prev_angle := 0
|
||||
var mouse_pos_on_gizmo_drag := Vector2.ZERO
|
||||
var clear_in_selected_cels := true
|
||||
|
||||
onready var marching_ants_outline : Sprite = $MarchingAntsOutline
|
||||
|
||||
|
@ -470,7 +471,7 @@ func transform_content_confirm() -> void:
|
|||
var cel_image : Image = project.frames[frame].cels[layer].image
|
||||
var src : Image = preview_image
|
||||
if not is_pasting and not (frame == project.current_frame and layer == project.current_layer):
|
||||
src = get_selected_image(cel_image)
|
||||
src = get_selected_image(cel_image, clear_in_selected_cels)
|
||||
src.resize(big_bounding_rectangle.size.x, big_bounding_rectangle.size.y, Image.INTERPOLATE_NEAREST)
|
||||
if temp_rect.size.x < 0:
|
||||
src.flip_x()
|
||||
|
@ -488,6 +489,7 @@ func transform_content_confirm() -> void:
|
|||
original_bitmap = BitMap.new()
|
||||
is_moving_content = false
|
||||
is_pasting = false
|
||||
clear_in_selected_cels = true
|
||||
update()
|
||||
|
||||
|
||||
|
@ -766,7 +768,7 @@ func get_preview_image() -> void:
|
|||
Global.canvas.update_texture(project.current_layer)
|
||||
|
||||
|
||||
func get_selected_image(cel_image : Image) -> Image:
|
||||
func get_selected_image(cel_image : Image, clear := true) -> Image:
|
||||
var project : Project = Global.current_project
|
||||
var image := Image.new()
|
||||
image = cel_image.get_rect(original_big_bounding_rectangle)
|
||||
|
@ -782,9 +784,10 @@ func get_selected_image(cel_image : Image) -> Image:
|
|||
if image.is_invisible():
|
||||
return image
|
||||
|
||||
var clear_image := Image.new()
|
||||
clear_image.create(image.get_width(), image.get_height(), false, Image.FORMAT_RGBA8)
|
||||
cel_image.blit_rect_mask(clear_image, image, Rect2(Vector2.ZERO, Global.current_project.selection_bitmap.get_size()), original_big_bounding_rectangle.position)
|
||||
Global.canvas.update_texture(project.current_layer)
|
||||
if clear:
|
||||
var clear_image := Image.new()
|
||||
clear_image.create(image.get_width(), image.get_height(), false, Image.FORMAT_RGBA8)
|
||||
cel_image.blit_rect_mask(clear_image, image, Rect2(Vector2.ZERO, Global.current_project.selection_bitmap.get_size()), original_big_bounding_rectangle.position)
|
||||
Global.canvas.update_texture(project.current_layer)
|
||||
|
||||
return image
|
||||
|
|
Loading…
Add table
Reference in a new issue