From ddf2a5c1cdf4820dbe1c8e5f3edaa382e0bbbe28 Mon Sep 17 00:00:00 2001 From: Yousef Khadadeh Date: Mon, 18 May 2026 11:40:29 +0300 Subject: [PATCH] selection stroke color works again --- src/DrawingProgram/DrawingProgramSelection.cpp | 6 ++++++ src/DrawingProgram/DrawingProgramSelection.hpp | 1 + src/DrawingProgram/Tools/LassoSelectTool.cpp | 4 ++++ src/DrawingProgram/Tools/LassoSelectTool.hpp | 1 + src/DrawingProgram/Tools/RectSelectTool.cpp | 4 ++++ src/DrawingProgram/Tools/RectSelectTool.hpp | 1 + 6 files changed, 17 insertions(+) diff --git a/src/DrawingProgram/DrawingProgramSelection.cpp b/src/DrawingProgram/DrawingProgramSelection.cpp index e08e5c6..c3c4eee 100644 --- a/src/DrawingProgram/DrawingProgramSelection.cpp +++ b/src/DrawingProgram/DrawingProgramSelection.cpp @@ -94,6 +94,12 @@ void DrawingProgramSelection::phone_selection_gui(PhoneDrawingProgramScreen& t) }); } +Vector4f* DrawingProgramSelection::color_picker_color(Vector4f* oldColor) { + if(oldColor == &strokeColorChangeData.newColor) + return oldColor; + return nullptr; +} + void DrawingProgramSelection::phone_selection_bottom_toolbar(PhoneDrawingProgramScreen& t) { using namespace GUIStuff; using namespace ElementHelpers; diff --git a/src/DrawingProgram/DrawingProgramSelection.hpp b/src/DrawingProgram/DrawingProgramSelection.hpp index 9e18dc5..d401a31 100644 --- a/src/DrawingProgram/DrawingProgramSelection.hpp +++ b/src/DrawingProgram/DrawingProgramSelection.hpp @@ -29,6 +29,7 @@ class DrawingProgramSelection { public: DrawingProgramSelection(DrawingProgram& initDrawP); void selection_gui(Toolbar& t); + Vector4f* color_picker_color(Vector4f* oldColor); void phone_selection_gui(PhoneDrawingProgramScreen& t); void phone_selection_bottom_toolbar(PhoneDrawingProgramScreen& t); void add_from_cam_coord_collider_to_selection(const SCollision::ColliderCollection& cC, DrawingProgramLayerManager::LayerSelector layerSelector, bool frontObjectOnly); diff --git a/src/DrawingProgram/Tools/LassoSelectTool.cpp b/src/DrawingProgram/Tools/LassoSelectTool.cpp index 4c99e4c..07fa043 100644 --- a/src/DrawingProgram/Tools/LassoSelectTool.cpp +++ b/src/DrawingProgram/Tools/LassoSelectTool.cpp @@ -138,6 +138,10 @@ void LassoSelectTool::input_mouse_motion_callback(const InputManager::MouseMotio drawP.selection.input_mouse_motion_callback_modify_selection(motion); } +Vector4f* LassoSelectTool::color_picker_color(Vector4f* oldColor) { + return drawP.selection.color_picker_color(oldColor); +} + void LassoSelectTool::erase_component(CanvasComponentContainer::ObjInfo* erasedComp) { } diff --git a/src/DrawingProgram/Tools/LassoSelectTool.hpp b/src/DrawingProgram/Tools/LassoSelectTool.hpp index a490e1b..57a5edf 100644 --- a/src/DrawingProgram/Tools/LassoSelectTool.hpp +++ b/src/DrawingProgram/Tools/LassoSelectTool.hpp @@ -37,6 +37,7 @@ class LassoSelectTool : public DrawingProgramToolBase { virtual void draw(SkCanvas* canvas, const DrawData& drawData) override; virtual void switch_tool(DrawingProgramToolType newTool) override; virtual bool prevent_undo_or_redo() override; + virtual Vector4f* color_picker_color(Vector4f* oldColor) override; virtual void input_key_callback(const InputManager::KeyCallbackArgs& key) override; virtual void input_mouse_button_on_canvas_callback(const InputManager::MouseButtonCallbackArgs& button) override; virtual void input_mouse_motion_callback(const InputManager::MouseMotionCallbackArgs& motion) override; diff --git a/src/DrawingProgram/Tools/RectSelectTool.cpp b/src/DrawingProgram/Tools/RectSelectTool.cpp index ce745ac..5009493 100644 --- a/src/DrawingProgram/Tools/RectSelectTool.cpp +++ b/src/DrawingProgram/Tools/RectSelectTool.cpp @@ -114,6 +114,10 @@ bool RectSelectTool::prevent_undo_or_redo() { return drawP.selection.is_something_selected() || controls.isSelecting; } +Vector4f* RectSelectTool::color_picker_color(Vector4f* oldColor) { + return drawP.selection.color_picker_color(oldColor); +} + void RectSelectTool::draw(SkCanvas* canvas, const DrawData& drawData) { if(controls.isSelecting) { Vector2f mPos = controls.selectEndAt; diff --git a/src/DrawingProgram/Tools/RectSelectTool.hpp b/src/DrawingProgram/Tools/RectSelectTool.hpp index a11cff3..4932a0b 100644 --- a/src/DrawingProgram/Tools/RectSelectTool.hpp +++ b/src/DrawingProgram/Tools/RectSelectTool.hpp @@ -35,6 +35,7 @@ class RectSelectTool : public DrawingProgramToolBase { virtual void draw(SkCanvas* canvas, const DrawData& drawData) override; virtual void switch_tool(DrawingProgramToolType newTool) override; virtual bool prevent_undo_or_redo() override; + virtual Vector4f* color_picker_color(Vector4f* oldColor) override; virtual void input_key_callback(const InputManager::KeyCallbackArgs& key) override; virtual void input_mouse_button_on_canvas_callback(const InputManager::MouseButtonCallbackArgs& button) override; virtual void input_mouse_motion_callback(const InputManager::MouseMotionCallbackArgs& motion) override;