From 76ab5fbf7807ded5886bab8df7746ce88ff64d99 Mon Sep 17 00:00:00 2001 From: Didier Korthoudt Date: Mon, 30 Nov 2015 09:07:33 +0100 Subject: [PATCH] CPControl-fix --- AppKit/CPControl.j | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) 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",