[quartz]Use new (since 10.5) NSTrackingArea instead of older tracking rect.

This commit is contained in:
John Ralls
2022-11-29 10:12:18 -08:00
parent cf53a34db4
commit 307945fbe4

View File

@@ -266,6 +266,9 @@
if (trackingRect)
{
[self removeTrackingRect: trackingRect];
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 10500
[(NSTrackingArea*)trackingRect release];
#endif
trackingRect = 0;
}
@@ -472,13 +475,19 @@ copy_rectangle_argb32 (cairo_surface_t *dest, cairo_surface_t *source,
{
GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (gdk_window->impl);
NSRect rect;
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 10500
NSTrackingArea *trackingArea;
#endif
if (!impl || !impl->toplevel)
return;
if (trackingRect)
{
[self removeTrackingRect: trackingRect];
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 10500
[(NSTrackingArea*)trackingRect release];
#endif
trackingRect = 0;
}
@@ -490,10 +499,19 @@ copy_rectangle_argb32 (cairo_surface_t *dest, cairo_surface_t *source,
*/
rect = [self bounds];
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 10500
trackingArea = [[NSTrackingArea alloc] initWithRect: rect
options: NSTrackingMouseEnteredAndExited | NSTrackingMouseMoved | NSTrackingCursorUpdate | NSTrackingActiveInActiveApp | NSTrackingInVisibleRect | NSTrackingEnabledDuringMouseDrag
owner: self
userInfo: nil];
[self addTrackingArea: trackingArea];
trackingRect = (NSInteger)[trackingArea retain];
#else
trackingRect = [self addTrackingRect: rect
owner: self
userData: nil
assumeInside: NO];
#endif
}
-(void)viewDidMoveToWindow
@@ -509,6 +527,9 @@ copy_rectangle_argb32 (cairo_surface_t *dest, cairo_surface_t *source,
if (newWindow == nil && trackingRect)
{
[self removeTrackingRect: trackingRect];
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 10500
[(NSTrackingArea*)trackingRect release];
#endif
trackingRect = 0;
}
}