From 9157e52c88f73dbf36ac564941303ac95256e654 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Thu, 23 Sep 2010 08:45:38 +0000 Subject: [PATCH] * Improved VolumeControl snapping based on Stippi's snapping code. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38797 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/bin/desklink/VolumeControl.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/bin/desklink/VolumeControl.cpp b/src/bin/desklink/VolumeControl.cpp index df3807f484..f61b0866ed 100644 --- a/src/bin/desklink/VolumeControl.cpp +++ b/src/bin/desklink/VolumeControl.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2009, Haiku, Inc. + * Copyright 2003-2010, Haiku, Inc. * Distributed under the terms of the MIT license. * * Authors: @@ -223,14 +223,22 @@ VolumeControl::MouseMoved(BPoint where, uint32 transit, if (ModificationMessage() != NULL) Messenger().SendMessage(ModificationMessage()); + float snapPoint = _PointForValue(0); + const float kMinSnapOffset = 6; + if (oldValue > newValue) { // movement from right to left fMinSnap = _PointForValue(-4); + if (fabs(snapPoint - fMinSnap) < kMinSnapOffset) + fMinSnap = snapPoint - kMinSnapOffset; + fMaxSnap = _PointForValue(1); } else { // movement from left to right fMinSnap = _PointForValue(-1); fMaxSnap = _PointForValue(4); + if (fabs(snapPoint - fMaxSnap) < kMinSnapOffset) + fMaxSnap = snapPoint + kMinSnapOffset; } fSnapping = true;