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