From 5cd4bf5905eafe5e5d9fab8ff2604635e2c4289f Mon Sep 17 00:00:00 2001 From: jules Date: Mon, 27 Apr 2015 11:58:52 +0100 Subject: [PATCH] Added a method MouseInactivityDetector::setMouseMoveTolerance() --- .../mouse/juce_MouseInactivityDetector.cpp | 11 ++++------- .../mouse/juce_MouseInactivityDetector.h | 9 +++++++-- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.cpp b/modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.cpp index b450181a8b..3cc5763c2c 100644 --- a/modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.cpp +++ b/modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.cpp @@ -23,7 +23,7 @@ */ MouseInactivityDetector::MouseInactivityDetector (Component& c) - : targetComp (c), delayMs (1500), isActive (true) + : targetComp (c), delayMs (1500), toleranceDistance (15), isActive (true) { targetComp.addMouseListener (this, true); } @@ -33,11 +33,8 @@ MouseInactivityDetector::~MouseInactivityDetector() targetComp.removeMouseListener (this); } -void MouseInactivityDetector::setDelay (int newDelayMilliseconds) -{ - delayMs = newDelayMilliseconds; -} - +void MouseInactivityDetector::setDelay (int newDelay) noexcept { delayMs = newDelay; } +void MouseInactivityDetector::setMouseMoveTolerance (int newDistance) noexcept { toleranceDistance = newDistance; } void MouseInactivityDetector::addListener (Listener* l) { listenerList.add (l); } void MouseInactivityDetector::removeListener (Listener* l) { listenerList.remove (l); } @@ -51,7 +48,7 @@ void MouseInactivityDetector::wakeUp (const MouseEvent& e, bool alwaysWake) { const Point newPos (e.getEventRelativeTo (&targetComp).getPosition()); - if ((! isActive) && (alwaysWake || e.source.isTouch() || newPos.getDistanceFrom (lastMousePos) > 15)) + if ((! isActive) && (alwaysWake || e.source.isTouch() || newPos.getDistanceFrom (lastMousePos) > toleranceDistance)) setActive (true); if (lastMousePos != newPos) diff --git a/modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.h b/modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.h index a2f6533d02..7c293285e8 100644 --- a/modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.h +++ b/modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.h @@ -54,7 +54,12 @@ public: /** Sets the time for which the mouse must be still before the callback is triggered. */ - void setDelay (int newDelayMilliseconds); + void setDelay (int newDelayMilliseconds) noexcept; + + /** Sets the number of pixels by which the cursor is allowed to drift before it is + considered to be actively moved. + */ + void setMouseMoveTolerance (int pixelsNeededToTrigger) noexcept; //============================================================================== /** Classes should implement this to receive callbacks from a MouseInactivityDetector @@ -84,7 +89,7 @@ private: Component& targetComp; ListenerList listenerList; Point lastMousePos; - int delayMs; + int delayMs, toleranceDistance; bool isActive; void timerCallback() override;