Update to scrolling behavior.

This commit is contained in:
Ross Boucher committed 2010-04-23 12:03:25 -07:00
1 parent ab6d5d6a90
commit 31f408478a
2 files changed
+31 -7

No files matched your search

+3 -1
View File
@@ -324,10 +324,12 @@
- (unsigned)columnAtPoint:(CGPoint)aPoint
{
var adjustedPoint = [_contentView convertPoint:aPoint fromView:self];
for (var i = 0, count = _tableViews.length; i < count; i++)
{
var frame = [[_tableViews[i] enclosingScrollView] frame];
if (CGRectContainsPoint(frame, aPoint))
if (CGRectContainsPoint(frame, adjustedPoint))
return i;
}
+28 -6
View File
@@ -190,17 +190,39 @@
- (BOOL)autoscroll:(CPEvent)anEvent
{
var bounds = [self bounds],
eventLocation = [self convertPoint:[anEvent locationInWindow] fromView:nil];
location = [self convertPoint:[event locationInWindow] fromView:nil],
superview = [self superview],
deltaX = 0,
deltaY = 0;
if (CPRectContainsPoint(bounds, eventLocation))
if (CGRectContainsPoint(bounds, location))
return NO;
var newRect = CGRectMakeZero();
if (![superview isKindOfClass:[CPScrollView class]] || [superview hasVerticalScroller])
{
if (location.y < CGRectGetMinY(bounds))
deltaY = CGRectGetMinY(bounds) - location.y;
else if (location.y > CGRectGetMaxY(bounds))
deltaY = CGRectGetMaxY(bounds) - location.y;
if (deltaY < -bounds.size.height)
deltaY = -bounds.size.height;
if (deltaY > bounds.size.height)
deltaY = bounds.size.height;
}
newRect.origin = eventLocation;
newRect.size = CPSizeMake(10, 10);
if (![superview isKindOfClass:[CPScrollView class]] || [superview hasHorizontalScroller])
{
if (location.x < CGRectGetMinX(bounds))
deltaX = CGRectGetMinX(bounds) - location.x;
else if (location.x > CGRectGetMaxX(bounds))
deltaX = CGRectGetMaxX(bounds) - location.x;
if (deltaX < -bounds.size.width)
deltaX = -bounds.size.width;
if (deltaX > bounds.size.width)
deltaX = bounds.size.width;
}
return [_documentView scrollRectToVisible:newRect];
return [self scrollToPoint:CGPointMake(bounds.origin.x - deltaX, bounds.origin.y - deltaY)];
}
@end