|
|
@@ -391,7 +391,7 @@ public: |
|
|
|
{
|
|
|
|
int numClicks = 1;
|
|
|
|
|
|
|
|
if (! hasMouseMovedSignificantlySincePressed())
|
|
|
|
if (! isLongPressOrDrag())
|
|
|
|
{
|
|
|
|
for (int i = 1; i < numElementsInArray (mouseDowns); ++i)
|
|
|
|
{
|
|
|
@@ -405,10 +405,20 @@ public: |
|
|
|
return numClicks;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool isLongPressOrDrag() const noexcept
|
|
|
|
{
|
|
|
|
return movedSignificantly || lastTime > mouseDowns[0].time + RelativeTime::milliseconds (300);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool hasMovedSignificantlySincePressed() const noexcept
|
|
|
|
{
|
|
|
|
return movedSignificantly;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Deprecated method
|
|
|
|
bool hasMouseMovedSignificantlySincePressed() const noexcept
|
|
|
|
{
|
|
|
|
return mouseMovedSignificantlySincePressed
|
|
|
|
|| lastTime > mouseDowns[0].time + RelativeTime::milliseconds (300);
|
|
|
|
return isLongPressOrDrag();
|
|
|
|
}
|
|
|
|
|
|
|
|
//==============================================================================
|
|
|
@@ -539,7 +549,7 @@ private: |
|
|
|
|
|
|
|
RecentMouseDown mouseDowns[4];
|
|
|
|
Time lastTime;
|
|
|
|
bool mouseMovedSignificantlySincePressed = false;
|
|
|
|
bool movedSignificantly = false;
|
|
|
|
|
|
|
|
void registerMouseDown (Point<float> screenPos, Time time, Component& component,
|
|
|
|
const ModifierKeys modifiers, bool isTouchSource) noexcept
|
|
|
@@ -557,14 +567,13 @@ private: |
|
|
|
else
|
|
|
|
mouseDowns[0].peerID = 0;
|
|
|
|
|
|
|
|
mouseMovedSignificantlySincePressed = false;
|
|
|
|
movedSignificantly = false;
|
|
|
|
lastNonInertialWheelTarget = nullptr;
|
|
|
|
}
|
|
|
|
|
|
|
|
void registerMouseDrag (Point<float> screenPos) noexcept
|
|
|
|
{
|
|
|
|
mouseMovedSignificantlySincePressed = mouseMovedSignificantlySincePressed
|
|
|
|
|| mouseDowns[0].position.getDistanceFrom (screenPos) >= 4;
|
|
|
|
movedSignificantly = movedSignificantly || mouseDowns[0].position.getDistanceFrom (screenPos) >= 4;
|
|
|
|
}
|
|
|
|
|
|
|
|
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MouseInputSourceInternal)
|
|
|
@@ -605,7 +614,8 @@ void MouseInputSource::triggerFakeMove() const |
|
|
|
int MouseInputSource::getNumberOfMultipleClicks() const noexcept { return pimpl->getNumberOfMultipleClicks(); }
|
|
|
|
Time MouseInputSource::getLastMouseDownTime() const noexcept { return pimpl->getLastMouseDownTime(); }
|
|
|
|
Point<float> MouseInputSource::getLastMouseDownPosition() const noexcept { return pimpl->getLastMouseDownPosition(); }
|
|
|
|
bool MouseInputSource::hasMouseMovedSignificantlySincePressed() const noexcept { return pimpl->hasMouseMovedSignificantlySincePressed(); }
|
|
|
|
bool MouseInputSource::isLongPressOrDrag() const noexcept { return pimpl->isLongPressOrDrag(); }
|
|
|
|
bool MouseInputSource::hasMovedSignificantlySincePressed() const noexcept { return pimpl->hasMovedSignificantlySincePressed(); }
|
|
|
|
bool MouseInputSource::canDoUnboundedMovement() const noexcept { return ! isTouch(); }
|
|
|
|
void MouseInputSource::enableUnboundedMouseMovement (bool isEnabled, bool keepCursorVisibleUntilOffscreen) const
|
|
|
|
{ pimpl->enableUnboundedMouseMovement (isEnabled, keepCursorVisibleUntilOffscreen); }
|
|
|
@@ -640,6 +650,9 @@ const float MouseInputSource::invalidRotation = 0.0f; |
|
|
|
const float MouseInputSource::invalidTiltX = 0.0f;
|
|
|
|
const float MouseInputSource::invalidTiltY = 0.0f;
|
|
|
|
|
|
|
|
// Deprecated method
|
|
|
|
bool MouseInputSource::hasMouseMovedSignificantlySincePressed() const noexcept { return pimpl->hasMouseMovedSignificantlySincePressed(); }
|
|
|
|
|
|
|
|
//==============================================================================
|
|
|
|
struct MouseInputSource::SourceList : public Timer
|
|
|
|
{
|
|
|
|