From 008d3439f94d27453c5b9d02259c345e50aa2ae4 Mon Sep 17 00:00:00 2001 From: Steve Yeom Date: Sun, 6 Apr 2014 19:00:52 +0900 Subject: [PATCH 1/2] fixed scale bug #issue-680 --- cocos2d/CCDirector.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cocos2d/CCDirector.m b/cocos2d/CCDirector.m index 973989a662f..63a16963d8c 100644 --- a/cocos2d/CCDirector.m +++ b/cocos2d/CCDirector.m @@ -343,7 +343,7 @@ -(void) setView:(CCGLView*)view #ifdef __CC_PLATFORM_IOS CGFloat scale = __view.layer.contentsScale ?: 1.0; #else - //self.view.wantsBestResolutionOpenGLSurface = YES; + self.view.wantsBestResolutionOpenGLSurface = YES; CGFloat scale = self.view.window.backingScaleFactor; #endif From ba4061fda64dcd910f3eb13339d3c8f910f7ceb7 Mon Sep 17 00:00:00 2001 From: Steve Yeom Date: Sun, 6 Apr 2014 19:34:19 +0900 Subject: [PATCH 2/2] #issue-681 support a keyboard for mac --- cocos2d/CCResponder.h | 14 +++++++++++ cocos2d/CCResponder.m | 10 ++++++++ cocos2d/CCResponderManager.m | 35 +++++++++++++++++++++++++++ cocos2d/Platforms/Mac/CCDirectorMac.m | 2 ++ cocos2d/Platforms/Mac/CCGLView.m | 10 ++++++++ 5 files changed, 71 insertions(+) diff --git a/cocos2d/CCResponder.h b/cocos2d/CCResponder.h index c2eafb70ec0..05e22ea8fce 100644 --- a/cocos2d/CCResponder.h +++ b/cocos2d/CCResponder.h @@ -203,6 +203,20 @@ */ - (void)scrollWheel:(NSEvent *)theEvent; +/** + * Called whan a key down. + * + * @param theEvent Current event information. + */ +- (void)keyDown:(NSEvent *)theEvent; + +/** + * Called whan a key up. + * + * @param theEvent Current event information. + */ +- (void)keyUp:(NSEvent *)theEvent; + #endif @end diff --git a/cocos2d/CCResponder.m b/cocos2d/CCResponder.m index d2d7b1601be..9500a9740ac 100644 --- a/cocos2d/CCResponder.m +++ b/cocos2d/CCResponder.m @@ -146,6 +146,16 @@ - (void)scrollWheel:(NSEvent *)theEvent [[CCDirector sharedDirector].responderManager discardCurrentEvent]; } +-(void)keyDown:(NSEvent *)theEvent +{ + [[CCDirector sharedDirector].responderManager discardCurrentEvent]; +} + +-(void)keyUp:(NSEvent *)theEvent +{ + [[CCDirector sharedDirector].responderManager discardCurrentEvent]; +} + #endif // ----------------------------------------------------------------- diff --git a/cocos2d/CCResponderManager.m b/cocos2d/CCResponderManager.m index 9bb2f7b1b69..e96b6ee4dc9 100644 --- a/cocos2d/CCResponderManager.m +++ b/cocos2d/CCResponderManager.m @@ -714,6 +714,41 @@ - (void)mouseExited:(NSEvent *)theEvent } +// ----------------------------------------------------------------- +#pragma mark - Mac keyboard handling - +// ----------------------------------------------------------------- + +- (void)keyDown:(NSEvent *)theEvent +{ + if (!_enabled) return; + [[CCDirector sharedDirector].view.window makeFirstResponder:[CCDirector sharedDirector].view]; + + if (_dirty) [self buildResponderList]; + + // scan backwards through mouse responders + for (int index = _responderListCount - 1; index >= 0; index --) + { + CCNode *node = _responderList[index]; + [node keyDown:theEvent]; + } +} + +- (void)keyUp:(NSEvent *)theEvent +{ + if (!_enabled) return; + [[CCDirector sharedDirector].view.window makeFirstResponder:[CCDirector sharedDirector].view]; + + if (_dirty) [self buildResponderList]; + + // scan backwards through mouse responders + for (int index = _responderListCount - 1; index >= 0; index --) + { + CCNode *node = _responderList[index]; + [node keyUp:theEvent]; + } +} + + // ----------------------------------------------------------------- #pragma mark - Mac helper functions // ----------------------------------------------------------------- diff --git a/cocos2d/Platforms/Mac/CCDirectorMac.m b/cocos2d/Platforms/Mac/CCDirectorMac.m index b3eaccfcd5a..b9663aa32a7 100644 --- a/cocos2d/Platforms/Mac/CCDirectorMac.m +++ b/cocos2d/Platforms/Mac/CCDirectorMac.m @@ -175,6 +175,8 @@ - (void) setFullScreen:(BOOL)fullscreen self.view.wantsBestResolutionOpenGLSurface = YES; } + // issue #681 + [openGLview keyDown:nil]; // issue #1189 [_windowGLView makeFirstResponder:openGLview]; diff --git a/cocos2d/Platforms/Mac/CCGLView.m b/cocos2d/Platforms/Mac/CCGLView.m index f512a0a9547..f4c5ed600c6 100644 --- a/cocos2d/Platforms/Mac/CCGLView.m +++ b/cocos2d/Platforms/Mac/CCGLView.m @@ -243,6 +243,16 @@ - (void)scrollWheel:(NSEvent *)theEvent [[CCDirector sharedDirector].responderManager scrollWheel:theEvent]; } +- (void) keyDown:(NSEvent *)theEvent { + // dispatch keyboard to responder manager + [[CCDirector sharedDirector].responderManager keyDown:theEvent]; +} + +- (void) keyUp:(NSEvent *)theEvent { + // dispatch keyboard to responder manager + [[CCDirector sharedDirector].responderManager keyUp:theEvent]; +} + @end #endif // __CC_PLATFORM_MAC