From 4bc69dc30c2ae91394d281e65bda1d82d1b18c1a Mon Sep 17 00:00:00 2001 From: Lawrence Lee <45837045+Lawrence37@users.noreply.github.com> Date: Sun, 23 May 2021 12:00:30 -0700 Subject: [PATCH] Leave gradient widget in good state on commit Stop highlighting the hovered or dragged geometry when disabling the widget. --- rtgui/gradient.cc | 14 ++++++++++++++ rtgui/gradient.h | 1 + 2 files changed, 15 insertions(+) diff --git a/rtgui/gradient.cc b/rtgui/gradient.cc index 972105dd0..cfe626ca7 100644 --- a/rtgui/gradient.cc +++ b/rtgui/gradient.cc @@ -325,6 +325,7 @@ void Gradient::editToggled () if (edit->get_active()) { subscribe(); } else { + releaseEdit(); unsubscribe(); } } @@ -579,6 +580,19 @@ bool Gradient::drag1(int modifierKey) return false; } +void Gradient::releaseEdit() +{ + if (lastObject >= 0) { + if (lastObject == 2 || lastObject == 3) { + EditSubscriber::visibleGeometry.at(2)->state = Geometry::NORMAL; + EditSubscriber::visibleGeometry.at(3)->state = Geometry::NORMAL; + } else { + EditSubscriber::visibleGeometry.at(lastObject)->state = Geometry::NORMAL; + } + } + action = Action::NONE; +} + void Gradient::switchOffEditMode () { if (edit->get_active()) { diff --git a/rtgui/gradient.h b/rtgui/gradient.h index 139b281a8..dc0371932 100644 --- a/rtgui/gradient.h +++ b/rtgui/gradient.h @@ -35,6 +35,7 @@ protected: sigc::connection editConn; void editToggled (); + void releaseEdit(); public: