| @@ -1755,6 +1755,13 @@ void Component::exitModalState (const int returnValue) | |||||
| ModalComponentManager& mcm = *ModalComponentManager::getInstance(); | ModalComponentManager& mcm = *ModalComponentManager::getInstance(); | ||||
| mcm.endModal (this, returnValue); | mcm.endModal (this, returnValue); | ||||
| mcm.bringModalComponentsToFront(); | mcm.bringModalComponentsToFront(); | ||||
| // If the mouse is over another Component when we exit the modal state then send a mouse enter event | |||||
| if (MouseInputSource* mouse = Desktop::getInstance().getMouseSource (0)) | |||||
| { | |||||
| if (Component* c = mouse->getComponentUnderMouse()) | |||||
| c->internalMouseEnter (*mouse, mouse->getScreenPosition(), Time::getCurrentTime()); | |||||
| } | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| @@ -2406,6 +2413,13 @@ void Component::internalMouseEnter (MouseInputSource source, Point<float> relati | |||||
| void Component::internalMouseExit (MouseInputSource source, Point<float> relativePos, Time time) | void Component::internalMouseExit (MouseInputSource source, Point<float> relativePos, Time time) | ||||
| { | { | ||||
| if (isCurrentlyBlockedByAnotherModalComponent()) | |||||
| { | |||||
| // if something else is modal, always just show a normal mouse cursor | |||||
| source.showMouseCursor (MouseCursor::NormalCursor); | |||||
| return; | |||||
| } | |||||
| if (flags.repaintOnMouseActivityFlag) | if (flags.repaintOnMouseActivityFlag) | ||||
| repaint(); | repaint(); | ||||