diff options
Diffstat (limited to 'src/ui/selected-color.cpp')
| -rw-r--r-- | src/ui/selected-color.cpp | 22 |
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(); + } +} + } } |
