diff --git a/modules/juce_gui_basics/windows/juce_TooltipWindow.cpp b/modules/juce_gui_basics/windows/juce_TooltipWindow.cpp index 8f1eb5de63..86435e0f80 100644 --- a/modules/juce_gui_basics/windows/juce_TooltipWindow.cpp +++ b/modules/juce_gui_basics/windows/juce_TooltipWindow.cpp @@ -218,6 +218,9 @@ void TooltipWindow::timerCallback() const auto tipChanged = (newTip != lastTipUnderMouse || newComp != lastComponentUnderMouse); const auto now = Time::getApproximateMillisecondCounter(); + lastComponentUnderMouse = newComp; + lastTipUnderMouse = newTip; + if (tipChanged || dismissalMouseEventOccurred || mouseMovedQuickly) lastCompChangeTime = now; @@ -246,9 +249,6 @@ void TooltipWindow::timerCallback() showTip(); } } - - lastComponentUnderMouse = newComp; - lastTipUnderMouse = newTip; } } diff --git a/modules/juce_gui_basics/windows/juce_TooltipWindow.h b/modules/juce_gui_basics/windows/juce_TooltipWindow.h index 72deb74a96..34e27fbd24 100644 --- a/modules/juce_gui_basics/windows/juce_TooltipWindow.h +++ b/modules/juce_gui_basics/windows/juce_TooltipWindow.h @@ -136,7 +136,7 @@ public: private: //============================================================================== Point lastMousePos; - Component* lastComponentUnderMouse = nullptr; + SafePointer lastComponentUnderMouse; String tipShowing, lastTipUnderMouse, manuallyShownTip; int millisecondsBeforeTipAppears; unsigned int lastCompChangeTime = 0, lastHideTime = 0;