Revision: 15154
http://sourceforge.net/p/skim-app/code/15154
Author: hofman
Date: 2025-05-04 16:20:09 +0000 (Sun, 04 May 2025)
Log Message:
-----------
set row number in tracking area rather than the rowwView
Modified Paths:
--------------
trunk/SKOutlineView.m
trunk/SKTableView.m
Modified: trunk/SKOutlineView.m
===================================================================
--- trunk/SKOutlineView.m 2025-05-04 14:52:54 UTC (rev 15153)
+++ trunk/SKOutlineView.m 2025-05-04 16:20:09 UTC (rev 15154)
@@ -42,7 +42,7 @@
#import "NSEvent_SKExtensions.h"
#import "NSFont_SKExtensions.h"
-#define SKImageToolTipRowViewKey @"SKImageToolTipRowView"
+#define SKImageToolTipRowNumberKey @"SKImageToolTipRowView"
@implementation SKOutlineView
@@ -286,7 +286,8 @@
#pragma mark Tracking
- (void)addTrackingAreaForRowView:(NSTableRowView *)rowView {
- NSDictionary *userInfo = [[NSDictionary alloc]
initWithObjectsAndKeys:[NSValue valueWithNonretainedObject:rowView],
SKImageToolTipRowViewKey, nil];
+ NSInteger row = [self rowForView:rowView];
+ NSDictionary *userInfo = @{SKImageToolTipRowNumberKey: [NSNumber
numberWithInteger:row]};
NSTrackingArea *area = [[NSTrackingArea alloc] initWithRect:[rowView
bounds] options:NSTrackingMouseEnteredAndExited | NSTrackingActiveInKeyWindow |
NSTrackingInVisibleRect owner:self userInfo:userInfo];
[rowView addTrackingArea:area];
}
@@ -293,7 +294,7 @@
- (void)removeTrackingAreaForRowView:(NSTableRowView *)rowView {
for (NSTrackingArea *area in [rowView trackingAreas]) {
- if ([[area userInfo] objectForKey:SKImageToolTipRowViewKey]) {
+ if ([[area userInfo] objectForKey:SKImageToolTipRowNumberKey]) {
[rowView removeTrackingArea:area];
break;
}
@@ -336,9 +337,9 @@
- (void)mouseEntered:(NSEvent *)theEvent{
if ([self hasImageToolTips]) {
- NSTableRowView *rowView = [[[[theEvent trackingArea] userInfo]
objectForKey:SKImageToolTipRowViewKey] nonretainedObjectValue];
- if (rowView) {
- NSInteger row = [self rowForView:rowView];
+ NSNumber *rowNumber = [[[theEvent trackingArea] userInfo]
objectForKey:SKImageToolTipRowNumberKey];
+ if (rowNumber) {
+ NSInteger row = [rowNumber integerValue];
if (row != -1) {
id item = [self itemAtRow:row];
if (item) {
@@ -356,7 +357,7 @@
}
- (void)mouseExited:(NSEvent *)theEvent{
- if ([self hasImageToolTips] && [[[theEvent trackingArea] userInfo]
objectForKey:SKImageToolTipRowViewKey])
+ if ([self hasImageToolTips] && [[[theEvent trackingArea] userInfo]
objectForKey:SKImageToolTipRowNumberKey])
[[SKImageToolTipWindow sharedToolTipWindow] fadeOut];
else if ([[SKOutlineView superclass] instancesRespondToSelector:_cmd])
[super mouseEntered:theEvent];
Modified: trunk/SKTableView.m
===================================================================
--- trunk/SKTableView.m 2025-05-04 14:52:54 UTC (rev 15153)
+++ trunk/SKTableView.m 2025-05-04 16:20:09 UTC (rev 15154)
@@ -42,7 +42,7 @@
#import "NSFont_SKExtensions.h"
#import "SKImageToolTipWindow.h"
-#define SKImageToolTipRowViewKey @"SKImageToolTipRowView"
+#define SKImageToolTipRowNumberKey @"SKImageToolTipRow"
#define SKImageToolTipColumnKey @"SKImageToolTipColumn"
@implementation SKTableView
@@ -289,17 +289,19 @@
}
- (void)addTrackingAreaForRowView:(NSTableRowView *)rowView {
- NSDictionary *userInfo = [[NSDictionary alloc]
initWithObjectsAndKeys:[NSValue valueWithNonretainedObject:rowView],
SKImageToolTipRowViewKey, nil];
+ NSInteger row = [self rowForView:rowView];
+ NSDictionary *userInfo = @{SKImageToolTipRowNumberKey: [NSNumber
numberWithInteger:row]};
NSTrackingArea *area = [[NSTrackingArea alloc] initWithRect:[rowView
bounds] options:NSTrackingMouseEnteredAndExited | NSTrackingActiveInKeyWindow |
NSTrackingInVisibleRect owner:self userInfo:userInfo];
[rowView addTrackingArea:area];
}
- (void)addTrackingAreasForRowView:(NSTableRowView *)rowView {
+ NSInteger row = [self rowForView:rowView];
NSInteger column, numCols = [self numberOfColumns];
for (column = 0; column < numCols; column++) {
NSView *view = [rowView viewAtColumn:column];
if (view) {
- NSDictionary *userInfo = [[NSDictionary alloc]
initWithObjectsAndKeys:[NSValue valueWithNonretainedObject:rowView],
SKImageToolTipRowViewKey, [NSNumber numberWithInteger:column],
SKImageToolTipColumnKey, nil];
+ NSDictionary *userInfo = @{SKImageToolTipRowNumberKey: [NSNumber
numberWithInteger:row], SKImageToolTipColumnKey: [NSNumber
numberWithInteger:column]};
NSTrackingArea *area = [[NSTrackingArea alloc] initWithRect:[view
frame] options:NSTrackingMouseEnteredAndExited | NSTrackingActiveInKeyWindow
owner:self userInfo:userInfo];
[rowView addTrackingArea:area];
}
@@ -309,7 +311,7 @@
- (void)removeTrackingAreasForRowView:(NSTableRowView *)rowView {
NSArray *areas = [[rowView trackingAreas] copy];
for (NSTrackingArea *area in areas) {
- if ([[area userInfo] objectForKey:SKImageToolTipRowViewKey])
+ if ([[area userInfo] objectForKey:SKImageToolTipRowNumberKey])
[rowView removeTrackingArea:area];
}
}
@@ -348,9 +350,9 @@
- (void)mouseEntered:(NSEvent *)theEvent{
if ([self imageToolTipLayout] != SKTableImageToolTipNone) {
- NSTableRowView *rowView = [[[[theEvent trackingArea] userInfo]
objectForKey:SKImageToolTipRowViewKey] nonretainedObjectValue];
- if (rowView) {
- NSInteger row = [self rowForView:rowView];
+ NSNumber *rowNumber = [[[[theEvent trackingArea] userInfo]
objectForKey:SKImageToolTipRowNumberKey] nonretainedObjectValue];
+ if (rowNumber) {
+ NSInteger row = [rowNumber integerValue];
if (row != -1) {
id <SKImageToolTipContext> context = nil;
CGFloat scale = 1.0;
@@ -372,7 +374,7 @@
}
- (void)mouseExited:(NSEvent *)theEvent{
- if ([self imageToolTipLayout] != SKTableImageToolTipNone && [[[theEvent
trackingArea] userInfo] objectForKey:SKImageToolTipRowViewKey])
+ if ([self imageToolTipLayout] != SKTableImageToolTipNone && [[[theEvent
trackingArea] userInfo] objectForKey:SKImageToolTipRowNumberKey])
[[SKImageToolTipWindow sharedToolTipWindow] fadeOut];
else if ([[SKTableView 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