mirror of
https://github.com/Orama-Interactive/Pixelorama.git
synced 2025-02-21 13:03:13 +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
|
_move_content = true
|
||||||
if Tools.alt: # Move the selection without cutting it from the original position / makes a quick copy of it
|
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.transform_content_confirm()
|
||||||
|
selection_node.clear_in_selected_cels = false
|
||||||
selection_node.transform_content_start()
|
selection_node.transform_content_start()
|
||||||
if Tools.alt: # Continuation of the above
|
if Tools.alt: # Continuation of the above
|
||||||
var cel_image : Image = project.frames[project.current_frame].cels[project.current_layer].image
|
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 dragged_gizmo : Gizmo = null
|
||||||
var prev_angle := 0
|
var prev_angle := 0
|
||||||
var mouse_pos_on_gizmo_drag := Vector2.ZERO
|
var mouse_pos_on_gizmo_drag := Vector2.ZERO
|
||||||
|
var clear_in_selected_cels := true
|
||||||
|
|
||||||
onready var marching_ants_outline : Sprite = $MarchingAntsOutline
|
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 cel_image : Image = project.frames[frame].cels[layer].image
|
||||||
var src : Image = preview_image
|
var src : Image = preview_image
|
||||||
if not is_pasting and not (frame == project.current_frame and layer == project.current_layer):
|
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)
|
src.resize(big_bounding_rectangle.size.x, big_bounding_rectangle.size.y, Image.INTERPOLATE_NEAREST)
|
||||||
if temp_rect.size.x < 0:
|
if temp_rect.size.x < 0:
|
||||||
src.flip_x()
|
src.flip_x()
|
||||||
|
@ -488,6 +489,7 @@ func transform_content_confirm() -> void:
|
||||||
original_bitmap = BitMap.new()
|
original_bitmap = BitMap.new()
|
||||||
is_moving_content = false
|
is_moving_content = false
|
||||||
is_pasting = false
|
is_pasting = false
|
||||||
|
clear_in_selected_cels = true
|
||||||
update()
|
update()
|
||||||
|
|
||||||
|
|
||||||
|
@ -766,7 +768,7 @@ func get_preview_image() -> void:
|
||||||
Global.canvas.update_texture(project.current_layer)
|
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 project : Project = Global.current_project
|
||||||
var image := Image.new()
|
var image := Image.new()
|
||||||
image = cel_image.get_rect(original_big_bounding_rectangle)
|
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():
|
if image.is_invisible():
|
||||||
return image
|
return image
|
||||||
|
|
||||||
var clear_image := Image.new()
|
if clear:
|
||||||
clear_image.create(image.get_width(), image.get_height(), false, Image.FORMAT_RGBA8)
|
var clear_image := Image.new()
|
||||||
cel_image.blit_rect_mask(clear_image, image, Rect2(Vector2.ZERO, Global.current_project.selection_bitmap.get_size()), original_big_bounding_rectangle.position)
|
clear_image.create(image.get_width(), image.get_height(), false, Image.FORMAT_RGBA8)
|
||||||
Global.canvas.update_texture(project.current_layer)
|
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
|
return image
|
||||||
|
|
Loading…
Add table
Reference in a new issue