From 39aae34323ec2413e4535e32fff689597d36ee81 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Thu, 13 Jun 2019 13:39:35 -0400 Subject: [PATCH] Avoids multiple calls to -[NSCursor hide] and -unhide. Those are reference counted. --- OSBindings/Mac/Clock Signal/Views/CSOpenGLView.m | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/OSBindings/Mac/Clock Signal/Views/CSOpenGLView.m b/OSBindings/Mac/Clock Signal/Views/CSOpenGLView.m index c65c813da..993deb3ff 100644 --- a/OSBindings/Mac/Clock Signal/Views/CSOpenGLView.m +++ b/OSBindings/Mac/Clock Signal/Views/CSOpenGLView.m @@ -219,9 +219,11 @@ static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeSt } - (void)releaseMouse { - _mouseIsCaptured = NO; - CGAssociateMouseAndMouseCursorPosition(true); - [NSCursor unhide]; + if(_mouseIsCaptured) { + _mouseIsCaptured = NO; + CGAssociateMouseAndMouseCursorPosition(true); + [NSCursor unhide]; + } } #pragma mark - Mouse motion @@ -274,7 +276,7 @@ static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeSt #pragma mark - Mouse buttons - (void)applyButtonDown:(NSEvent *)event { - if(self.shouldCaptureMouse) { + if(self.shouldCaptureMouse && !_mouseIsCaptured) { _mouseIsCaptured = YES; [NSCursor hide]; CGAssociateMouseAndMouseCursorPosition(false);