Created
October 22, 2009 04:47
-
-
Save saikat/215735 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@import <AppKit/CPWindow.j> | |
var IsChangingFirstResponder = NO, | |
CurrentFirstResponder = nil; | |
@implementation MBWindow : CPWindow | |
{ } | |
// TODO this is a huge hack to basically get text view to work and not exit when | |
// you click on its scroll bar | |
- (id)firstResponderCandidate | |
{ | |
return CurrentFirstResponder; | |
} | |
// Modified to allow resignFirstResponder set first responders within, and the last first responder | |
// that gets set is the one that gets used | |
- (void)makeFirstResponder:(CPResponder)aResponder | |
{ | |
CurrentFirstResponder = aResponder; | |
if (IsChangingFirstResponder) | |
return NO; | |
else | |
IsChangingFirstResponder = YES; | |
if (_firstResponder == CurrentFirstResponder) { | |
IsChangingFirstResponder = NO; | |
return YES; | |
} | |
if(![_firstResponder resignFirstResponder]) { | |
IsChangingFirstResponder = NO; | |
return NO; | |
} | |
if(!CurrentFirstResponder || ![CurrentFirstResponder acceptsFirstResponder] || ![CurrentFirstResponder becomeFirstResponder]) { | |
_firstResponder = self; | |
IsChangingFirstResponder = NO; | |
return NO; | |
} | |
_firstResponder = CurrentFirstResponder; | |
IsChangingFirstResponder = NO; | |
return YES; | |
} | |
- (void)sendEvent:(CPEvent)anEvent | |
{ | |
var type = [anEvent type], | |
point = [anEvent locationInWindow], | |
currentFirstResponder = [self firstResponder]; | |
[super sendEvent:anEvent]; | |
if (type == CPLeftMouseDown && | |
[currentFirstResponder class] == [CPTextViewScroller class] && | |
[[self firstResponder] class] == [CPTextViewScroller class]) { | |
if ([_leftMouseDownView class] !== [CPTextViewScroller class]) | |
[self makeFirstResponder:_leftMouseDownView]; | |
} | |
} | |
@end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment