Revision: 13528
          http://sourceforge.net/p/skim-app/code/13528
Author:   hofman
Date:     2023-07-12 16:08:11 +0000 (Wed, 12 Jul 2023)
Log Message:
-----------
Piggyback on tracking area of full pdfview that it already adds for 
mouseEntered, mouseExited, and mouseMoved. Avoids calling the events twice, for 
our and PDFView's area.

Modified Paths:
--------------
    trunk/SKPDFView.h
    trunk/SKPDFView.m

Modified: trunk/SKPDFView.h
===================================================================
--- trunk/SKPDFView.h   2023-07-03 09:00:00 UTC (rev 13527)
+++ trunk/SKPDFView.h   2023-07-12 16:08:11 UTC (rev 13528)
@@ -159,8 +159,6 @@
     
     NSInteger minHistoryIndex;
     
-    NSTrackingArea *trackingArea;
-    
     NSInteger spellingTag;
     
     NSInteger laserPointerColor;

Modified: trunk/SKPDFView.m
===================================================================
--- trunk/SKPDFView.m   2023-07-03 09:00:00 UTC (rev 13527)
+++ trunk/SKPDFView.m   2023-07-12 16:08:11 UTC (rev 13528)
@@ -335,9 +335,6 @@
     gestureRotation = 0.0;
     gesturePageIndex = NSNotFound;
     
-    trackingArea = [[NSTrackingArea alloc] initWithRect:[self bounds] 
options:NSTrackingMouseEnteredAndExited | NSTrackingActiveInActiveApp | 
NSTrackingInVisibleRect owner:self userInfo:nil];
-    [self addTrackingArea:trackingArea];
-    
     [self registerForDraggedTypes:@[NSPasteboardTypeColor, 
SKPasteboardTypeLineStyle]];
     
     NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
@@ -367,7 +364,6 @@
 - (void)dealloc {
     // we should have been cleaned up in setDelegate:nil which is called from 
windowWillClose:
     SKDESTROY(syncDot);
-    SKDESTROY(trackingArea);
     SKDESTROY(currentAnnotation);
     SKDESTROY(typeSelectHelper);
     SKDESTROY(transitionController);
@@ -2328,9 +2324,7 @@
 - (void)mouseEntered:(NSEvent *)theEvent {
     NSTrackingArea *eventArea = [theEvent trackingArea];
     PDFAnnotation *annotation;
-    if ([eventArea owner] == self && [eventArea isEqual:trackingArea]) {
-        [[self window] setAcceptsMouseMovedEvents:YES];
-    } else if ([eventArea owner] == self && (annotation = [[eventArea 
userInfo] objectForKey:SKAnnotationKey])) {
+    if ([eventArea owner] == self && (annotation = [[eventArea userInfo] 
objectForKey:SKAnnotationKey])) {
         [[SKImageToolTipWindow sharedToolTipWindow] 
showForImageContext:annotation scale:[self scaleFactor] atPoint:NSZeroPoint];
     } else if ([[SKPDFView superclass] instancesRespondToSelector:_cmd]) {
         [super mouseEntered:theEvent];
@@ -2340,16 +2334,17 @@
 - (void)mouseExited:(NSEvent *)theEvent {
     NSTrackingArea *eventArea = [theEvent trackingArea];
     PDFAnnotation *annotation;
-    if ([eventArea owner] == self && [eventArea isEqual:trackingArea]) {
-        [[self window] setAcceptsMouseMovedEvents:NO];
-        [[NSCursor arrowCursor] set];
-        if (toolMode == SKMagnifyToolMode)
-            [loupeController hide];
-    } else if ([eventArea owner] == self && (annotation = [[eventArea 
userInfo] objectForKey:SKAnnotationKey])) {
+    if ([eventArea owner] == self && (annotation = [[eventArea userInfo] 
objectForKey:SKAnnotationKey])) {
         if ([annotation isEqual:[[SKImageToolTipWindow sharedToolTipWindow] 
currentImageContext]])
             [[SKImageToolTipWindow sharedToolTipWindow] fadeOut];
-    } else if ([[SKPDFView superclass] instancesRespondToSelector:_cmd]) {
-        [super mouseExited:theEvent];
+    } else {
+        if (([eventArea options] & NSTrackingInVisibleRect)) {
+            [[NSCursor arrowCursor] set];
+            if (toolMode == SKMagnifyToolMode)
+                [loupeController hide];
+        }
+        if ([[SKPDFView superclass] instancesRespondToSelector:_cmd])
+            [super mouseExited:theEvent];
     }
 }
 

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to