1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-01-18 17:19:50 +00:00

Fix color picker changing hue when modifying the saturation and value inside the color picker shape

This commit is contained in:
Emmanouil Papadeas 2025-01-10 17:30:44 +02:00
parent 89de8ab461
commit 3f2245cd9b

View file

@ -12,6 +12,7 @@ var shape_aspect_ratio: AspectRatioContainer
var swatches_button: Button var swatches_button: Button
## The internal container for the color sliders of the [ColorPicker] node. ## The internal container for the color sliders of the [ColorPicker] node.
var color_sliders_vbox: VBoxContainer var color_sliders_vbox: VBoxContainer
var _skip_color_picker_update := false
@onready var color_picker := %ColorPicker as ColorPicker @onready var color_picker := %ColorPicker as ColorPicker
@onready var color_buttons := %ColorButtons as HBoxContainer @onready var color_buttons := %ColorButtons as HBoxContainer
@onready var left_color_rect := %LeftColorRect as ColorRect @onready var left_color_rect := %LeftColorRect as ColorRect
@ -105,10 +106,7 @@ func _on_color_picker_color_changed(color: Color) -> void:
# So we're using this trick to convert the values back to how they are shown in # So we're using this trick to convert the values back to how they are shown in
# the color picker's UI. # the color picker's UI.
color = Color(color.to_html()) color = Color(color.to_html())
if Tools.picking_color_for == MOUSE_BUTTON_RIGHT: _skip_color_picker_update = true
right_color_rect.color = color
else:
left_color_rect.color = color
Tools.assign_color(color, Tools.picking_color_for) Tools.assign_color(color, Tools.picking_color_for)
@ -130,7 +128,7 @@ func reset_options() -> void:
func update_color(color_info: Dictionary, button: int) -> void: func update_color(color_info: Dictionary, button: int) -> void:
var color = color_info.get("color", Color.WHITE) var color = color_info.get("color", Color.WHITE)
if Tools.picking_color_for == button: if Tools.picking_color_for == button and not _skip_color_picker_update:
color_picker.color = color color_picker.color = color
if button == MOUSE_BUTTON_RIGHT: if button == MOUSE_BUTTON_RIGHT:
right_color_rect.color = color right_color_rect.color = color
@ -139,6 +137,7 @@ func update_color(color_info: Dictionary, button: int) -> void:
_average(left_color_rect.color, right_color_rect.color) _average(left_color_rect.color, right_color_rect.color)
Global.config_cache.set_value("color_picker", "color_mode", color_picker.color_mode) Global.config_cache.set_value("color_picker", "color_mode", color_picker.color_mode)
Global.config_cache.set_value("color_picker", "picker_shape", color_picker.picker_shape) Global.config_cache.set_value("color_picker", "picker_shape", color_picker.picker_shape)
_skip_color_picker_update = false
func _on_ColorSwitch_pressed() -> void: func _on_ColorSwitch_pressed() -> void: