| @@ -71,11 +71,11 @@ void JucerDocument::changed() | |||||
| void JucerDocument::timerCallback() | void JucerDocument::timerCallback() | ||||
| { | { | ||||
| if ((lastFocusedComp != Component::getCurrentlyFocusedComponent() | if ((lastFocusedComp != Component::getCurrentlyFocusedComponent() | ||||
| || lastClickCounter != Desktop::getMouseButtonClickCounter()) | |||||
| || lastClickCounter != Desktop::getInstance().getMouseButtonClickCounter()) | |||||
| && ! Component::isMouseButtonDownAnywhere()) | && ! Component::isMouseButtonDownAnywhere()) | ||||
| { | { | ||||
| lastFocusedComp = Component::getCurrentlyFocusedComponent(); | lastFocusedComp = Component::getCurrentlyFocusedComponent(); | ||||
| lastClickCounter = Desktop::getMouseButtonClickCounter(); | |||||
| lastClickCounter = Desktop::getInstance().getMouseButtonClickCounter(); | |||||
| getUndoManager().beginNewTransaction(); | getUndoManager().beginNewTransaction(); | ||||
| } | } | ||||
| @@ -24,7 +24,7 @@ | |||||
| */ | */ | ||||
| Desktop::Desktop() | Desktop::Desktop() | ||||
| : mouseClickCounter (0), | |||||
| : mouseClickCounter (0), mouseWheelCounter (0), | |||||
| kioskModeComponent (nullptr), | kioskModeComponent (nullptr), | ||||
| allowedOrientations (allOrientations) | allowedOrientations (allOrientations) | ||||
| { | { | ||||
| @@ -156,15 +156,11 @@ Point<int> Desktop::getLastMouseDownPosition() | |||||
| return getInstance().getMainMouseSource().getLastMouseDownPosition(); | return getInstance().getMainMouseSource().getLastMouseDownPosition(); | ||||
| } | } | ||||
| int Desktop::getMouseButtonClickCounter() | |||||
| { | |||||
| return getInstance().mouseClickCounter; | |||||
| } | |||||
| int Desktop::getMouseButtonClickCounter() const noexcept { return mouseClickCounter; } | |||||
| int Desktop::getMouseWheelMoveCounter() const noexcept { return mouseWheelCounter; } | |||||
| void Desktop::incrementMouseClickCounter() noexcept | |||||
| { | |||||
| ++mouseClickCounter; | |||||
| } | |||||
| void Desktop::incrementMouseClickCounter() noexcept { ++mouseClickCounter; } | |||||
| void Desktop::incrementMouseWheelCounter() noexcept { ++mouseWheelCounter; } | |||||
| int Desktop::getNumDraggingMouseSources() const noexcept | int Desktop::getNumDraggingMouseSources() const noexcept | ||||
| { | { | ||||
| @@ -78,7 +78,6 @@ public: | |||||
| static Point<int> getMousePosition(); | static Point<int> getMousePosition(); | ||||
| /** Makes the mouse pointer jump to a given location. | /** Makes the mouse pointer jump to a given location. | ||||
| The co-ordinates are relative to the top-left of the main monitor. | The co-ordinates are relative to the top-left of the main monitor. | ||||
| */ | */ | ||||
| static void setMousePosition (const Point<int>& newPosition); | static void setMousePosition (const Point<int>& newPosition); | ||||
| @@ -92,12 +91,17 @@ public: | |||||
| */ | */ | ||||
| static Point<int> getLastMouseDownPosition(); | static Point<int> getLastMouseDownPosition(); | ||||
| /** Returns the number of times the mouse button has been clicked since the | |||||
| app started. | |||||
| /** Returns the number of times the mouse button has been clicked since the app started. | |||||
| Each mouse-down event increments this number by 1. | Each mouse-down event increments this number by 1. | ||||
| @see getMouseWheelMoveCounter | |||||
| */ | |||||
| int getMouseButtonClickCounter() const noexcept; | |||||
| /** Returns the number of times the mouse wheel has been moved since the app started. | |||||
| Each mouse-wheel event increments this number by 1. | |||||
| @see getMouseButtonClickCounter | |||||
| */ | */ | ||||
| static int getMouseButtonClickCounter(); | |||||
| int getMouseWheelMoveCounter() const noexcept; | |||||
| //============================================================================== | //============================================================================== | ||||
| /** This lets you prevent the screensaver from becoming active. | /** This lets you prevent the screensaver from becoming active. | ||||
| @@ -391,8 +395,9 @@ private: | |||||
| Point<int> lastFakeMouseMove; | Point<int> lastFakeMouseMove; | ||||
| void sendMouseMove(); | void sendMouseMove(); | ||||
| int mouseClickCounter; | |||||
| int mouseClickCounter, mouseWheelCounter; | |||||
| void incrementMouseClickCounter() noexcept; | void incrementMouseClickCounter() noexcept; | ||||
| void incrementMouseWheelCounter() noexcept; | |||||
| ScopedPointer<Timer> dragRepeater; | ScopedPointer<Timer> dragRepeater; | ||||
| @@ -291,8 +291,9 @@ public: | |||||
| jassert (peer != nullptr); | jassert (peer != nullptr); | ||||
| lastTime = time; | lastTime = time; | ||||
| ++mouseEventCounter; | ++mouseEventCounter; | ||||
| const Point<int> screenPos (peer->localToGlobal (positionWithinPeer)); | |||||
| Desktop::getInstance().incrementMouseWheelCounter(); | |||||
| const Point<int> screenPos (peer->localToGlobal (positionWithinPeer)); | |||||
| setPeer (peer, screenPos, time); | setPeer (peer, screenPos, time); | ||||
| setScreenPos (screenPos, time, false); | setScreenPos (screenPos, time, false); | ||||
| triggerFakeMove(); | triggerFakeMove(); | ||||
| @@ -28,6 +28,7 @@ TooltipWindow::TooltipWindow (Component* const parent_, | |||||
| : Component ("tooltip"), | : Component ("tooltip"), | ||||
| millisecondsBeforeTipAppears (millisecondsBeforeTipAppears_), | millisecondsBeforeTipAppears (millisecondsBeforeTipAppears_), | ||||
| mouseClicks (0), | mouseClicks (0), | ||||
| mouseWheelMoves (0), | |||||
| lastHideTime (0), | lastHideTime (0), | ||||
| lastComponentUnderMouse (nullptr), | lastComponentUnderMouse (nullptr), | ||||
| changedCompsSinceShown (true) | changedCompsSinceShown (true) | ||||
| @@ -145,9 +146,12 @@ void TooltipWindow::timerCallback() | |||||
| lastComponentUnderMouse = newComp; | lastComponentUnderMouse = newComp; | ||||
| lastTipUnderMouse = newTip; | lastTipUnderMouse = newTip; | ||||
| const int clickCount = Desktop::getInstance().getMouseButtonClickCounter(); | |||||
| const bool mouseWasClicked = clickCount > mouseClicks; | |||||
| Desktop& desktop = Desktop::getInstance(); | |||||
| const int clickCount = desktop.getMouseButtonClickCounter(); | |||||
| const int wheelCount = desktop.getMouseButtonClickCounter(); | |||||
| const bool mouseWasClicked = (clickCount > mouseClicks || wheelCount > mouseWheelMoves); | |||||
| mouseClicks = clickCount; | mouseClicks = clickCount; | ||||
| mouseWheelMoves = wheelCount; | |||||
| const Point<int> mousePos (Desktop::getMousePosition()); | const Point<int> mousePos (Desktop::getMousePosition()); | ||||
| const bool mouseMovedQuickly = mousePos.getDistanceFrom (lastMousePos) > 12; | const bool mouseMovedQuickly = mousePos.getDistanceFrom (lastMousePos) > 12; | ||||
| @@ -98,7 +98,7 @@ private: | |||||
| //============================================================================== | //============================================================================== | ||||
| int millisecondsBeforeTipAppears; | int millisecondsBeforeTipAppears; | ||||
| Point<int> lastMousePos; | Point<int> lastMousePos; | ||||
| int mouseClicks; | |||||
| int mouseClicks, mouseWheelMoves; | |||||
| unsigned int lastCompChangeTime, lastHideTime; | unsigned int lastCompChangeTime, lastHideTime; | ||||
| Component* lastComponentUnderMouse; | Component* lastComponentUnderMouse; | ||||
| bool changedCompsSinceShown; | bool changedCompsSinceShown; | ||||
| @@ -78,7 +78,7 @@ void SplashScreen::show (const String& title, | |||||
| repaint(); | repaint(); | ||||
| originalClickCounter = removeOnMouseClick | originalClickCounter = removeOnMouseClick | ||||
| ? Desktop::getMouseButtonClickCounter() | |||||
| ? Desktop::getInstance().getMouseButtonClickCounter() | |||||
| : std::numeric_limits<int>::max(); | : std::numeric_limits<int>::max(); | ||||
| earliestTimeToDelete = Time::getCurrentTime() + RelativeTime::milliseconds (minimumTimeToDisplayFor); | earliestTimeToDelete = Time::getCurrentTime() + RelativeTime::milliseconds (minimumTimeToDisplayFor); | ||||
| @@ -99,7 +99,7 @@ void SplashScreen::paint (Graphics& g) | |||||
| void SplashScreen::timerCallback() | void SplashScreen::timerCallback() | ||||
| { | { | ||||
| if (Time::getCurrentTime() > earliestTimeToDelete | if (Time::getCurrentTime() > earliestTimeToDelete | ||||
| || Desktop::getMouseButtonClickCounter() > originalClickCounter) | |||||
| || Desktop::getInstance().getMouseButtonClickCounter() != originalClickCounter) | |||||
| { | { | ||||
| delete this; | delete this; | ||||
| } | } | ||||