summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2014-04-19 14:29:20 +1000
committerDamien Zammit <damien@zamaudio.com>2014-04-19 14:29:20 +1000
commit257143d7899db7348f00f190ef9731cae82b0af3 (patch)
tree4e65bfc465b5c058e8b98f89abe94e275e4273a4
parent384f9c1c9542979d1fc532c2ed3fa8661972fabc (diff)
Made knobs move with both X and Y mouse movement.
Signed-off-by: Damien Zammit <damien@zamaudio.com>
-rw-r--r--libs/dgl/src/ImageKnob.cpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/libs/dgl/src/ImageKnob.cpp b/libs/dgl/src/ImageKnob.cpp
index 8ffbc84..0fa7ba1 100644
--- a/libs/dgl/src/ImageKnob.cpp
+++ b/libs/dgl/src/ImageKnob.cpp
@@ -333,19 +333,19 @@ bool ImageKnob::onMotion(int x, int y)
return false;
bool doVal = false;
- float d, value;
- int movX, movY, movR;
+ float d, value, r, movR;
+ int movX, movY;
movX = x - fLastX;
movY = fLastY - y;
- movR = (movX + movY);
-
- if (movR)
- {
- printf("movR=%d\n",movR);
- d = (getModifiers() & MODIFIER_SHIFT) ? 2000.0f : 200.0f;
- value = (fValueTmp) + (float(fMaximum - fMinimum) / d * float((movR)));
- doVal = true;
- }
+ r = sqrt(movX*movX + movY*movY);
+ movR = ((movX + movY) > 0) ? r : -r;
+
+ if (movR)
+ {
+ d = (getModifiers() & MODIFIER_SHIFT) ? 2000.0f : 200.0f;
+ value = (fValueTmp) + (float(fMaximum - fMinimum) / d * float((movR)));
+ doVal = true;
+ }
if (! doVal)
return false;