Skip to content

Commit 1c03173

Browse files
committed
BUG: Potential bug: don't assume non-positive values of NSTrackingRectTag are invalid.
1 parent ececb37 commit 1c03173

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

Rendering/vtkCocoaGLView.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
@private
6060
vtkCocoaRenderWindowRef myVTKRenderWindow;
6161
NSTrackingRectTag rolloverTrackingRectTag;
62+
BOOL rolloverTrackingRectSet;
6263
}
6364

6465
- (vtkCocoaRenderWindowRef)getVTKRenderWindow;

Rendering/vtkCocoaGLView.mm

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ - (id)initWithFrame:(NSRect)frameRect
3535
self = [super initWithFrame:frameRect];
3636
if (self)
3737
{
38+
// The tracking rect is not set yet.
39+
rolloverTrackingRectSet = NO;
40+
3841
// Force Cocoa into "multi threaded mode" because VTK spawns pthreads.
3942
// Apple's docs say: "If you intend to use Cocoa calls, you must force
4043
// Cocoa into its multithreaded mode before detaching any POSIX threads.
@@ -92,10 +95,10 @@ - (void)drawRect:(NSRect)theRect
9295
- (void)clearTrackingRect
9396
{
9497
// remove any tracking rect we have
95-
if (rolloverTrackingRectTag > 0)
98+
if (rolloverTrackingRectSet)
9699
{
97100
[self removeTrackingRect:rolloverTrackingRectTag];
98-
rolloverTrackingRectTag=0;
101+
rolloverTrackingRectSet = NO;
99102
}
100103
}
101104

@@ -110,6 +113,7 @@ - (void)resetTrackingRect
110113
owner:self
111114
userData:NULL
112115
assumeInside:NO];
116+
rolloverTrackingRectSet = YES;
113117
}
114118

115119
//----------------------------------------------------------------------------

0 commit comments

Comments
 (0)