Revision: 2581
          http://skim-app.svn.sourceforge.net/skim-app/?rev=2581&view=rev
Author:   hofman
Date:     2007-07-28 12:34:35 -0700 (Sat, 28 Jul 2007)

Log Message:
-----------
Set column+row as userData for tracking rect. getting it from the location of 
the event is unreliable.

Modified Paths:
--------------
    trunk/SKFindTableView.m
    trunk/SKOutlineView.m

Modified: trunk/SKFindTableView.m
===================================================================
--- trunk/SKFindTableView.m     2007-07-28 18:18:15 UTC (rev 2580)
+++ trunk/SKFindTableView.m     2007-07-28 19:34:35 UTC (rev 2581)
@@ -40,14 +40,15 @@
     NSRange columnRange = [self columnsInRect:[self visibleRect]];
     unsigned int row, column;
        NSTableColumn *tableColumn;
+    int userData;
     NSTrackingRectTag tag;
-    BOOL assumeInside = [[self delegate] 
respondsToSelector:@selector(tableView:mouseEnteredTableColumn:row:)];
     
     for (column = columnRange.location; column < NSMaxRange(columnRange); 
column++) {
         tableColumn = [[self tableColumns] objectAtIndex:column];
                for (row = rowRange.location; row < NSMaxRange(rowRange); 
row++) {
             if ([[self delegate] tableView:self 
shouldTrackTableColumn:tableColumn row:row]) {
-                tag = [self addTrackingRect:[self frameOfCellAtColumn:column 
row:row] owner:self userData:NULL assumeInside:assumeInside];
+                userData = row * [self numberOfColumns] + column;
+                tag = [self addTrackingRect:[self frameOfCellAtColumn:column 
row:row] owner:self userData:NULL assumeInside:NO];
                 CFArrayAppendValue(trackingRects, (const void *)tag);
             }
         }
@@ -86,9 +87,10 @@
 
 - (void)mouseEntered:(NSEvent *)theEvent{
     if ([[self delegate] 
respondsToSelector:@selector(tableView:mouseEnteredTableColumn:row:)]) {
-        NSPoint point = [self convertPoint:[theEvent locationInWindow] 
fromView:nil];
-               int column = [self columnAtPoint:point];
-               int row = [self rowAtPoint:point];
+        int userData = (int)[theEvent userData];
+        int numCols = [self numberOfColumns];
+               int column = userData % numCols;
+               int row = userData / numCols;
         if (column != -1 && row != -1) {
             NSTableColumn *tableColumn = [[self tableColumns] 
objectAtIndex:column];
             [[self delegate] tableView:self 
mouseEnteredTableColumn:tableColumn row:row];
@@ -98,9 +100,10 @@
 
 - (void)mouseExited:(NSEvent *)theEvent{
     if ([[self delegate] 
respondsToSelector:@selector(tableView:mouseExitedTableColumn:row:)]) {
-        NSPoint point = [self convertPoint:[theEvent locationInWindow] 
fromView:nil];
-               int column = [self columnAtPoint:point];
-               int row = [self rowAtPoint:point];
+        int userData = (int)[theEvent userData];
+        int numCols = [self numberOfColumns];
+               int column = userData % numCols;
+               int row = userData / numCols;
         if (column != -1 && row != -1) {
             NSTableColumn *tableColumn = [[self tableColumns] 
objectAtIndex:column];
             [[self delegate] tableView:self mouseExitedTableColumn:tableColumn 
row:row];

Modified: trunk/SKOutlineView.m
===================================================================
--- trunk/SKOutlineView.m       2007-07-28 18:18:15 UTC (rev 2580)
+++ trunk/SKOutlineView.m       2007-07-28 19:34:35 UTC (rev 2581)
@@ -94,13 +94,15 @@
     NSRange columnRange = [self columnsInRect:[self visibleRect]];
     unsigned int row, column;
        NSTableColumn *tableColumn;
+    int userData;
     NSTrackingRectTag tag;
     
     for (column = columnRange.location; column < NSMaxRange(columnRange); 
column++) {
         tableColumn = [[self tableColumns] objectAtIndex:column];
                for (row = rowRange.location; row < NSMaxRange(rowRange); 
row++) {
             if ([[self delegate] outlineView:self 
shouldTrackTableColumn:tableColumn item:[self itemAtRow:row]]) {
-                tag = [self addTrackingRect:[self frameOfCellAtColumn:column 
row:row] owner:self userData:NULL assumeInside:NO];
+                userData = row * [self numberOfColumns] + column;
+                tag = [self addTrackingRect:[self frameOfCellAtColumn:column 
row:row] owner:self userData:(void *)userData assumeInside:NO];
                 CFArrayAppendValue(trackingRects, (const void *)tag);
             }
         }
@@ -139,9 +141,10 @@
 
 - (void)mouseEntered:(NSEvent *)theEvent{
     if ([[self delegate] 
respondsToSelector:@selector(outlineView:mouseEnteredTableColumn:item:)]) {
-        NSPoint point = [self convertPoint:[theEvent locationInWindow] 
fromView:nil];
-               int column = [self columnAtPoint:point];
-               int row = [self rowAtPoint:point];
+        int userData = (int)[theEvent userData];
+        int numCols = [self numberOfColumns];
+               int column = userData % numCols;
+               int row = userData / numCols;
         if (column != -1 && row != -1) {
             NSTableColumn *tableColumn = [[self tableColumns] 
objectAtIndex:column];
             [[self delegate] outlineView:self 
mouseEnteredTableColumn:tableColumn item:[self itemAtRow:row]];
@@ -151,9 +154,10 @@
 
 - (void)mouseExited:(NSEvent *)theEvent{
     if ([[self delegate] 
respondsToSelector:@selector(outlineView:mouseExitedTableColumn:item:)]) {
-        NSPoint point = [self convertPoint:[theEvent locationInWindow] 
fromView:nil];
-               int column = [self columnAtPoint:point];
-               int row = [self rowAtPoint:point];
+        int userData = (int)[theEvent userData];
+        int numCols = [self numberOfColumns];
+               int column = userData % numCols;
+               int row = userData / numCols;
         if (column != -1 && row != -1) {
             NSTableColumn *tableColumn = [[self tableColumns] 
objectAtIndex:column];
             [[self delegate] outlineView:self 
mouseExitedTableColumn:tableColumn item:[self itemAtRow:row]];


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

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to