src/macosx/native/sun/awt/AWTView.m
Print this page
*** 80,89 ****
--- 80,90 ----
fEnablePressAndHold = shouldUsePressAndHold();
fInPressAndHold = NO;
fPAHNeedsToSelect = NO;
mouseIsOver = NO;
+ [self resetTrackingArea];
if (windowLayer != nil) {
self.cglLayer = windowLayer;
[self setWantsLayer: YES];
[self.layer addSublayer: (CALayer *)cglLayer];
*** 144,154 ****
[JNFRunLoop performOnMainThreadWaiting:NO withBlock:^() {
[[self window] makeFirstResponder: self];
}];
if ([self window] != NULL) {
! [self resetTrackingRect];
}
}
- (BOOL) acceptsFirstMouse: (NSEvent *)event {
return YES;
--- 145,155 ----
[JNFRunLoop performOnMainThreadWaiting:NO withBlock:^() {
[[self window] makeFirstResponder: self];
}];
if ([self window] != NULL) {
! [self resetTrackingArea];
}
}
- (BOOL) acceptsFirstMouse: (NSEvent *)event {
return YES;
*** 366,399 ****
static JNF_CLASS_CACHE(jc_PlatformView, "sun/lwawt/macosx/CPlatformView");
static JNF_MEMBER_CACHE(jm_deliverMouseEvent, jc_PlatformView, "deliverMouseEvent", "(Lsun/lwawt/macosx/event/NSEvent;)V");
JNFCallVoidMethod(env, m_cPlatformView, jm_deliverMouseEvent, jEvent);
}
!
! - (void) clearTrackingRect {
! if (rolloverTrackingRectTag > 0) {
! [self removeTrackingRect:rolloverTrackingRectTag];
! rolloverTrackingRectTag = 0;
}
- }
! - (void) resetTrackingRect {
! [self clearTrackingRect];
! rolloverTrackingRectTag = [self addTrackingRect:[self visibleRect]
owner:self
! userData:NULL
! assumeInside:NO];
}
- (void)updateTrackingAreas {
[super updateTrackingAreas];
! [self resetTrackingRect];
}
- (void) resetCursorRects {
[super resetCursorRects];
! [self resetTrackingRect];
}
-(void) deliverJavaKeyEventHelper: (NSEvent *) event {
static NSEvent* sLastKeyEvent = nil;
if (event == sLastKeyEvent) {
--- 367,402 ----
static JNF_CLASS_CACHE(jc_PlatformView, "sun/lwawt/macosx/CPlatformView");
static JNF_MEMBER_CACHE(jm_deliverMouseEvent, jc_PlatformView, "deliverMouseEvent", "(Lsun/lwawt/macosx/event/NSEvent;)V");
JNFCallVoidMethod(env, m_cPlatformView, jm_deliverMouseEvent, jEvent);
}
! - (void) resetTrackingArea {
! if (rolloverTrackingArea != nil) {
! [self removeTrackingArea:rolloverTrackingArea];
! [rolloverTrackingArea release];
}
! int options = (NSTrackingActiveInActiveApp | NSTrackingCursorUpdate |
! NSTrackingMouseEnteredAndExited | NSTrackingMouseMoved |
! NSTrackingEnabledDuringMouseDrag);
!
! rolloverTrackingArea = [[NSTrackingArea alloc] initWithRect:[self visibleRect]
! options: options
owner:self
! userInfo:nil
! ];
! [self addTrackingArea:rolloverTrackingArea];
}
- (void)updateTrackingAreas {
[super updateTrackingAreas];
! [self resetTrackingArea];
}
- (void) resetCursorRects {
[super resetCursorRects];
! [self resetTrackingArea];
}
-(void) deliverJavaKeyEventHelper: (NSEvent *) event {
static NSEvent* sLastKeyEvent = nil;
if (event == sLastKeyEvent) {