summaryrefslogtreecommitdiffstats
path: root/src/ui/selected-color.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/selected-color.cpp')
-rw-r--r--src/ui/selected-color.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/ui/selected-color.cpp b/src/ui/selected-color.cpp
index fc702de83..440459c74 100644
--- a/src/ui/selected-color.cpp
+++ b/src/ui/selected-color.cpp
@@ -32,6 +32,7 @@ SelectedColor::SelectedColor()
: _color(0)
, _alpha(1.0)
, _virgin(true)
+ , _held(false)
{
}
@@ -86,7 +87,11 @@ void SelectedColor::setColorAlpha(SPColor const &color, gfloat alpha, bool emit)
_alpha = alpha;
if (emit) {
- signal_changed.emit();
+ if (_held) {
+ signal_dragged.emit();
+ } else {
+ signal_changed.emit();
+ }
}
#ifdef DUMP_CHANGE_INFO
} else {
@@ -101,6 +106,21 @@ void SelectedColor::colorAlpha(SPColor &color, gfloat &alpha) const {
alpha = _alpha;
}
+void SelectedColor::setHeld(bool held) {
+ bool grabbed = held && !_held;
+ bool released = !held && _held;
+
+ _held = held;
+
+ if (grabbed) {
+ signal_grabbed.emit();
+ }
+
+ if (released) {
+ signal_released.emit();
+ }
+}
+
}
}