| @@ -73865,10 +73865,10 @@ public: | |||||
| comp->internalMouseDrag (source, comp->getLocalPoint (nullptr, screenPos), time); | comp->internalMouseDrag (source, comp->getLocalPoint (nullptr, screenPos), time); | ||||
| } | } | ||||
| void sendMouseUp (Component* const comp, const Point<int>& screenPos, const Time& time) | |||||
| void sendMouseUp (Component* const comp, const Point<int>& screenPos, const Time& time, const ModifierKeys& oldMods) | |||||
| { | { | ||||
| //DBG ("Mouse " + String (source.getIndex()) + " up: " + comp->getLocalPoint (nullptr, screenPos).toString() + " - Comp: " + String::toHexString ((int) comp)); | //DBG ("Mouse " + String (source.getIndex()) + " up: " + comp->getLocalPoint (nullptr, screenPos).toString() + " - Comp: " + String::toHexString ((int) comp)); | ||||
| comp->internalMouseUp (source, comp->getLocalPoint (nullptr, screenPos), time, getCurrentModifiers()); | |||||
| comp->internalMouseUp (source, comp->getLocalPoint (nullptr, screenPos), time, oldMods); | |||||
| } | } | ||||
| void sendMouseWheel (Component* const comp, const Point<int>& screenPos, const Time& time, float x, float y) | void sendMouseWheel (Component* const comp, const Point<int>& screenPos, const Time& time, float x, float y) | ||||
| @@ -73899,7 +73899,12 @@ public: | |||||
| Component* const current = getComponentUnderMouse(); | Component* const current = getComponentUnderMouse(); | ||||
| if (current != nullptr) | if (current != nullptr) | ||||
| sendMouseUp (current, screenPos + unboundedMouseOffset, time); | |||||
| { | |||||
| const ModifierKeys oldMods (getCurrentModifiers()); | |||||
| buttonState = newButtonState; // must change this before calling sendMouseUp, in case it runs a modal loop | |||||
| sendMouseUp (current, screenPos + unboundedMouseOffset, time, oldMods); | |||||
| } | |||||
| enableUnboundedMouseMovement (false, false); | enableUnboundedMouseMovement (false, false); | ||||
| } | } | ||||
| @@ -73,7 +73,7 @@ namespace JuceDummyNamespace {} | |||||
| */ | */ | ||||
| #define JUCE_MAJOR_VERSION 1 | #define JUCE_MAJOR_VERSION 1 | ||||
| #define JUCE_MINOR_VERSION 54 | #define JUCE_MINOR_VERSION 54 | ||||
| #define JUCE_BUILDNUMBER 25 | |||||
| #define JUCE_BUILDNUMBER 27 | |||||
| /** Current Juce version number. | /** Current Juce version number. | ||||
| @@ -33,7 +33,7 @@ | |||||
| */ | */ | ||||
| #define JUCE_MAJOR_VERSION 1 | #define JUCE_MAJOR_VERSION 1 | ||||
| #define JUCE_MINOR_VERSION 54 | #define JUCE_MINOR_VERSION 54 | ||||
| #define JUCE_BUILDNUMBER 25 | |||||
| #define JUCE_BUILDNUMBER 27 | |||||
| /** Current Juce version number. | /** Current Juce version number. | ||||
| @@ -128,10 +128,10 @@ public: | |||||
| comp->internalMouseDrag (source, comp->getLocalPoint (nullptr, screenPos), time); | comp->internalMouseDrag (source, comp->getLocalPoint (nullptr, screenPos), time); | ||||
| } | } | ||||
| void sendMouseUp (Component* const comp, const Point<int>& screenPos, const Time& time) | |||||
| void sendMouseUp (Component* const comp, const Point<int>& screenPos, const Time& time, const ModifierKeys& oldMods) | |||||
| { | { | ||||
| //DBG ("Mouse " + String (source.getIndex()) + " up: " + comp->getLocalPoint (nullptr, screenPos).toString() + " - Comp: " + String::toHexString ((int) comp)); | //DBG ("Mouse " + String (source.getIndex()) + " up: " + comp->getLocalPoint (nullptr, screenPos).toString() + " - Comp: " + String::toHexString ((int) comp)); | ||||
| comp->internalMouseUp (source, comp->getLocalPoint (nullptr, screenPos), time, getCurrentModifiers()); | |||||
| comp->internalMouseUp (source, comp->getLocalPoint (nullptr, screenPos), time, oldMods); | |||||
| } | } | ||||
| void sendMouseWheel (Component* const comp, const Point<int>& screenPos, const Time& time, float x, float y) | void sendMouseWheel (Component* const comp, const Point<int>& screenPos, const Time& time, float x, float y) | ||||
| @@ -163,7 +163,12 @@ public: | |||||
| Component* const current = getComponentUnderMouse(); | Component* const current = getComponentUnderMouse(); | ||||
| if (current != nullptr) | if (current != nullptr) | ||||
| sendMouseUp (current, screenPos + unboundedMouseOffset, time); | |||||
| { | |||||
| const ModifierKeys oldMods (getCurrentModifiers()); | |||||
| buttonState = newButtonState; // must change this before calling sendMouseUp, in case it runs a modal loop | |||||
| sendMouseUp (current, screenPos + unboundedMouseOffset, time, oldMods); | |||||
| } | |||||
| enableUnboundedMouseMovement (false, false); | enableUnboundedMouseMovement (false, false); | ||||
| } | } | ||||