diff --git a/src/Autoload/Tools.gd b/src/Autoload/Tools.gd index 9e7f379d5..ec1861443 100644 --- a/src/Autoload/Tools.gd +++ b/src/Autoload/Tools.gd @@ -59,7 +59,7 @@ var shift := false var alt := false -func _ready(): +func _ready() -> void: yield(get_tree(), "idle_frame") _slots[BUTTON_LEFT] = Slot.new("Left tool") _slots[BUTTON_RIGHT] = Slot.new("Right tool") @@ -72,9 +72,9 @@ func _ready(): value = Global.config_cache.get_value(_slots[BUTTON_RIGHT].kname, "tool", "Eraser") set_tool(value, BUTTON_RIGHT) value = Global.config_cache.get_value(_slots[BUTTON_LEFT].kname, "color", Color.black) - assign_color(value, BUTTON_LEFT) + assign_color(value, BUTTON_LEFT, false) value = Global.config_cache.get_value(_slots[BUTTON_RIGHT].kname, "color", Color.white) - assign_color(value, BUTTON_RIGHT) + assign_color(value, BUTTON_RIGHT, false) update_tool_buttons() update_tool_cursors() @@ -115,13 +115,14 @@ func default_color() -> void: func swap_color() -> void: var left = _slots[BUTTON_LEFT].color var right = _slots[BUTTON_RIGHT].color - assign_color(right, BUTTON_LEFT) - assign_color(left, BUTTON_RIGHT) + assign_color(right, BUTTON_LEFT, false) + assign_color(left, BUTTON_RIGHT, false) -func assign_color(color : Color, button : int) -> void: +func assign_color(color : Color, button : int, change_alpha := true) -> void: var c : Color = _slots[button].color - if color.a == 0: + # This was requested by Issue #54 on GitHub + if color.a == 0 and change_alpha: if color.r != c.r or color.g != c.g or color.b != c.b: color.a = 1 _slots[button].color = color diff --git a/src/Palette/PaletteContainer.gd b/src/Palette/PaletteContainer.gd index c2058614f..abe3e0df6 100644 --- a/src/Palette/PaletteContainer.gd +++ b/src/Palette/PaletteContainer.gd @@ -268,9 +268,9 @@ func on_color_select(index : int) -> void: var color : Color = Global.palettes[current_palette].get_color(index) if Input.is_action_just_pressed("left_mouse"): - Tools.assign_color(color, BUTTON_LEFT) + Tools.assign_color(color, BUTTON_LEFT, false) elif Input.is_action_just_pressed("right_mouse"): - Tools.assign_color(color, BUTTON_RIGHT) + Tools.assign_color(color, BUTTON_RIGHT, false) func _load_palettes() -> void: diff --git a/src/Tools/ColorPicker.gd b/src/Tools/ColorPicker.gd index 36596e2be..45866fc29 100644 --- a/src/Tools/ColorPicker.gd +++ b/src/Tools/ColorPicker.gd @@ -48,4 +48,4 @@ func _pick_color(position : Vector2) -> void: image.lock() var color := image.get_pixelv(position) var button := BUTTON_LEFT if _color_slot == 0 else BUTTON_RIGHT - Tools.assign_color(color, button) + Tools.assign_color(color, button, false)