| @@ -497,6 +497,9 @@ public: | |||||
| void redirectMouseDown (NSEvent* ev) | void redirectMouseDown (NSEvent* ev) | ||||
| { | { | ||||
| if (! Process::isForegroundProcess()) | |||||
| Process::makeForegroundProcess(); | |||||
| currentModifiers = currentModifiers.withFlags (getModifierForButtonNumber ([ev buttonNumber])); | currentModifiers = currentModifiers.withFlags (getModifierForButtonNumber ([ev buttonNumber])); | ||||
| sendMouseEvent (ev); | sendMouseEvent (ev); | ||||
| } | } | ||||
| @@ -1285,12 +1288,12 @@ struct JuceNSViewClass : public ObjCClass <NSView> | |||||
| addMethod (@selector (mouseMoved:), mouseMoved, "v@:@"); | addMethod (@selector (mouseMoved:), mouseMoved, "v@:@"); | ||||
| addMethod (@selector (mouseEntered:), mouseEntered, "v@:@"); | addMethod (@selector (mouseEntered:), mouseEntered, "v@:@"); | ||||
| addMethod (@selector (mouseExited:), mouseExited, "v@:@"); | addMethod (@selector (mouseExited:), mouseExited, "v@:@"); | ||||
| addMethod (@selector (rightMouseDown:), rightMouseDown, "v@:@"); | |||||
| addMethod (@selector (rightMouseDragged:), rightMouseDragged, "v@:@"); | |||||
| addMethod (@selector (rightMouseUp:), rightMouseUp, "v@:@"); | |||||
| addMethod (@selector (otherMouseDown:), otherMouseDown, "v@:@"); | |||||
| addMethod (@selector (otherMouseDragged:), otherMouseDragged, "v@:@"); | |||||
| addMethod (@selector (otherMouseUp:), otherMouseUp, "v@:@"); | |||||
| addMethod (@selector (rightMouseDown:), mouseDown, "v@:@"); | |||||
| addMethod (@selector (rightMouseDragged:), mouseDragged, "v@:@"); | |||||
| addMethod (@selector (rightMouseUp:), mouseUp, "v@:@"); | |||||
| addMethod (@selector (otherMouseDown:), mouseDown, "v@:@"); | |||||
| addMethod (@selector (otherMouseDragged:), mouseDragged, "v@:@"); | |||||
| addMethod (@selector (otherMouseUp:), mouseUp, "v@:@"); | |||||
| addMethod (@selector (scrollWheel:), scrollWheel, "v@:@"); | addMethod (@selector (scrollWheel:), scrollWheel, "v@:@"); | ||||
| addMethod (@selector (acceptsFirstMouse:), acceptsFirstMouse, "v@:@"); | addMethod (@selector (acceptsFirstMouse:), acceptsFirstMouse, "v@:@"); | ||||
| addMethod (@selector (frameChanged:), frameChanged, "v@:@"); | addMethod (@selector (frameChanged:), frameChanged, "v@:@"); | ||||
| @@ -1352,7 +1355,7 @@ private: | |||||
| static void mouseUp (id self, SEL s, NSEvent* ev) | static void mouseUp (id self, SEL s, NSEvent* ev) | ||||
| { | { | ||||
| if (! JUCEApplication::isStandaloneApp()) | |||||
| if (JUCEApplication::isStandaloneApp()) | |||||
| asyncMouseUp (self, s, ev); | asyncMouseUp (self, s, ev); | ||||
| else | else | ||||
| // In some host situations, the host will stop modal loops from working | // In some host situations, the host will stop modal loops from working | ||||
| @@ -1363,20 +1366,13 @@ private: | |||||
| waitUntilDone: NO]; | waitUntilDone: NO]; | ||||
| } | } | ||||
| static void asyncMouseDown (id self, SEL, NSEvent* ev) { if (NSViewComponentPeer* const p = getOwner (self)) p->redirectMouseDown (ev); } | |||||
| static void asyncMouseUp (id self, SEL, NSEvent* ev) { if (NSViewComponentPeer* const p = getOwner (self)) p->redirectMouseUp (ev); } | |||||
| static void mouseDragged (id self, SEL, NSEvent* ev) { if (NSViewComponentPeer* const p = getOwner (self)) p->redirectMouseDrag (ev); } | |||||
| static void mouseMoved (id self, SEL, NSEvent* ev) { if (NSViewComponentPeer* const p = getOwner (self)) p->redirectMouseMove (ev); } | |||||
| static void mouseEntered (id self, SEL, NSEvent* ev) { if (NSViewComponentPeer* const p = getOwner (self)) p->redirectMouseEnter (ev); } | |||||
| static void mouseExited (id self, SEL, NSEvent* ev) { if (NSViewComponentPeer* const p = getOwner (self)) p->redirectMouseExit (ev); } | |||||
| static void scrollWheel (id self, SEL, NSEvent* ev) { if (NSViewComponentPeer* const p = getOwner (self)) p->redirectMouseWheel (ev); } | |||||
| static void rightMouseDown (id self, SEL s, NSEvent* ev) { mouseDown (self, s, ev); } | |||||
| static void otherMouseDown (id self, SEL s, NSEvent* ev) { mouseDown (self, s, ev); } | |||||
| static void rightMouseDragged (id self, SEL s, NSEvent* ev) { mouseDragged (self, s, ev); } | |||||
| static void otherMouseDragged (id self, SEL s, NSEvent* ev) { mouseDragged (self, s, ev); } | |||||
| static void rightMouseUp (id self, SEL s, NSEvent* ev) { mouseUp (self, s, ev); } | |||||
| static void otherMouseUp (id self, SEL s, NSEvent* ev) { mouseUp (self, s, ev); } | |||||
| static void asyncMouseDown (id self, SEL, NSEvent* ev) { if (NSViewComponentPeer* const p = getOwner (self)) p->redirectMouseDown (ev); } | |||||
| static void asyncMouseUp (id self, SEL, NSEvent* ev) { if (NSViewComponentPeer* const p = getOwner (self)) p->redirectMouseUp (ev); } | |||||
| static void mouseDragged (id self, SEL, NSEvent* ev) { if (NSViewComponentPeer* const p = getOwner (self)) p->redirectMouseDrag (ev); } | |||||
| static void mouseMoved (id self, SEL, NSEvent* ev) { if (NSViewComponentPeer* const p = getOwner (self)) p->redirectMouseMove (ev); } | |||||
| static void mouseEntered (id self, SEL, NSEvent* ev) { if (NSViewComponentPeer* const p = getOwner (self)) p->redirectMouseEnter (ev); } | |||||
| static void mouseExited (id self, SEL, NSEvent* ev) { if (NSViewComponentPeer* const p = getOwner (self)) p->redirectMouseExit (ev); } | |||||
| static void scrollWheel (id self, SEL, NSEvent* ev) { if (NSViewComponentPeer* const p = getOwner (self)) p->redirectMouseWheel (ev); } | |||||
| static BOOL acceptsFirstMouse (id, SEL, NSEvent*) { return YES; } | static BOOL acceptsFirstMouse (id, SEL, NSEvent*) { return YES; } | ||||