diff --git a/AppKit/CPControl.j b/AppKit/CPControl.j index 18d40bf7d..c113a0973 100644 --- a/AppKit/CPControl.j +++ b/AppKit/CPControl.j @@ -196,24 +196,11 @@ var CPControlBlackColor = [CPColor blackColor]; { _sendActionOn = CPLeftMouseUpMask; _trackingMouseDownFlags = 0; - - [self addTrackingArea:[[CPTrackingArea alloc] initWithRect:CGRectMakeZero() - options:CPTrackingMouseEnteredAndExited | CPTrackingActiveInKeyWindow | CPTrackingInVisibleRect - owner:self - userInfo:nil]]; } return self; } -- (void)awakeFromCib -{ - [self addTrackingArea:[[CPTrackingArea alloc] initWithRect:CGRectMakeZero() - options:CPTrackingMouseEnteredAndExited | CPTrackingActiveInKeyWindow | CPTrackingInVisibleRect - owner:self - userInfo:nil]]; -} - #pragma mark - #pragma mark Control Size @@ -1069,6 +1056,23 @@ var CPControlBlackColor = [CPColor blackColor]; @end +@implementation CPControl (CPTrackingArea) + +- (void)updateTrackingAreas +{ + var myTrackingAreas = [self trackingAreas]; + + for (var i = 0; i < myTrackingAreas.length; i++) + [self removeTrackingArea:myTrackingAreas[i]]; + + [self addTrackingArea:[[CPTrackingArea alloc] initWithRect:CGRectMakeZero() + options:CPTrackingMouseEnteredAndExited | CPTrackingActiveInKeyWindow | CPTrackingInVisibleRect + owner:self + userInfo:nil]]; +} + +@end + var CPControlActionKey = @"CPControlActionKey", CPControlControlSizeKey = @"CPControlControlSizeKey", CPControlControlStateKey = @"CPControlControlStateKey",