mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-10-23 16:48:53 +00:00
Merge branch 'master' of git://github.com/280north/cappuccino
Conflicts: Foundation/CPKeyValueObserving.j
This commit is contained in:
commit
1171e2c9af
3 files changed
+60
-22
No files matched your search
+34
-3
@@ -171,7 +171,32 @@ CPWebViewScrollNative = 2;
|
||||
[self _resizeWebFrame];
|
||||
}
|
||||
|
||||
- (BOOL)_resizeWebFrame
|
||||
- (void)_attachScrollEventIfNecessary
|
||||
{
|
||||
if (_scrollMode !== CPWebViewScrollAppKit)
|
||||
return;
|
||||
|
||||
var win = null;
|
||||
try { win = [self DOMWindow]; } catch (e) {}
|
||||
|
||||
if (win && win.addEventListener)
|
||||
{
|
||||
var scrollEventHandler = function(anEvent)
|
||||
{
|
||||
var frameBounds = [self bounds],
|
||||
frameCenter = CGPointMake(CGRectGetMidX(frameBounds), CGRectGetMidY(frameBounds)),
|
||||
windowOrigin = [self convertPoint:frameCenter toView:nil],
|
||||
globalOrigin = [[self window] convertBaseToBridge:windowOrigin];
|
||||
|
||||
anEvent._overrideLocation = globalOrigin;
|
||||
[[[self window] platformWindow] scrollEvent:anEvent];
|
||||
};
|
||||
|
||||
win.addEventListener("DOMMouseScroll", scrollEventHandler, false);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)_resizeWebFrame
|
||||
{
|
||||
if (_scrollMode === CPWebViewScrollAppKit)
|
||||
{
|
||||
@@ -181,7 +206,8 @@ CPWebViewScrollNative = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
[_frameView setFrameSize:[_scrollView contentSize]];
|
||||
var visibleRect = [_frameView visibleRect];
|
||||
[_frameView setFrameSize:CGSizeMake(CGRectGetMaxX(visibleRect), CGRectGetMaxY(visibleRect))];
|
||||
|
||||
// try to get the document size so we can correctly set the frame
|
||||
var win = null;
|
||||
@@ -203,6 +229,8 @@ CPWebViewScrollNative = 2;
|
||||
|
||||
[_frameView setFrameSize:CGSizeMake(800, 1600)];
|
||||
}
|
||||
|
||||
[_frameView scrollRectToVisible:visibleRect];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -256,6 +284,8 @@ CPWebViewScrollNative = 2;
|
||||
|
||||
[self _setScrollMode:CPWebViewScrollAppKit];
|
||||
|
||||
[_frameView setFrameSize:[_scrollView contentSize]];
|
||||
|
||||
[self _startedLoading];
|
||||
|
||||
_ignoreLoadStart = YES;
|
||||
@@ -315,7 +345,8 @@ CPWebViewScrollNative = 2;
|
||||
- (void)_finishedLoading
|
||||
{
|
||||
[self _resizeWebFrame];
|
||||
|
||||
[self _attachScrollEventIfNecessary];
|
||||
|
||||
[[CPNotificationCenter defaultCenter] postNotificationName:CPWebViewProgressFinishedNotification object:self];
|
||||
|
||||
if ([_frameLoadDelegate respondsToSelector:@selector(webView:didFinishLoadForFrame:)])
|
||||
|
||||
@@ -851,12 +851,13 @@ var supportsNativeDragAndDrop = [CPPlatform supportsDragAndDrop];
|
||||
if(!aDOMEvent)
|
||||
aDOMEvent = window.event;
|
||||
|
||||
var location = nil;
|
||||
if (CPFeatureIsCompatible(CPJavaScriptMouseWheelValues_8_15))
|
||||
{
|
||||
var x = 0.0,
|
||||
y = 0.0,
|
||||
var x = aDOMEvent._offsetX || 0.0,
|
||||
y = aDOMEvent._offsetY || 0.0,
|
||||
element = aDOMEvent.target;
|
||||
|
||||
|
||||
while (element.nodeType !== 1)
|
||||
element = element.parentNode;
|
||||
|
||||
@@ -870,11 +871,13 @@ var supportsNativeDragAndDrop = [CPPlatform supportsDragAndDrop];
|
||||
} while (element = element.offsetParent);
|
||||
}
|
||||
|
||||
var location = _CGPointMake((x + ((aDOMEvent.clientX - 8) / 15)), (y + ((aDOMEvent.clientY - 8) / 15)));
|
||||
location = _CGPointMake((x + ((aDOMEvent.clientX - 8) / 15)), (y + ((aDOMEvent.clientY - 8) / 15)));
|
||||
}
|
||||
else if (aDOMEvent._overrideLocation)
|
||||
location = aDOMEvent._overrideLocation;
|
||||
else
|
||||
var location = _CGPointMake(aDOMEvent.clientX, aDOMEvent.clientY);
|
||||
|
||||
location = _CGPointMake(aDOMEvent.clientX, aDOMEvent.clientY);
|
||||
|
||||
var deltaX = 0.0,
|
||||
deltaY = 0.0,
|
||||
windowNumber = 0,
|
||||
@@ -883,7 +886,7 @@ var supportsNativeDragAndDrop = [CPPlatform supportsDragAndDrop];
|
||||
(aDOMEvent.ctrlKey ? CPControlKeyMask : 0) |
|
||||
(aDOMEvent.altKey ? CPAlternateKeyMask : 0) |
|
||||
(aDOMEvent.metaKey ? CPCommandKeyMask : 0);
|
||||
|
||||
|
||||
StopDOMEventPropagation = YES;
|
||||
|
||||
var theWindow = [self hitTest:location];
|
||||
|
||||
@@ -481,10 +481,11 @@ var kvoNewAndOld = CPKeyValueObservingOptionNew|CPKeyValueObservingOptionOld,
|
||||
- (void)willChangeValueForKey:(CPString)aKey
|
||||
{
|
||||
var superClass = [self class],
|
||||
methodSelector = @selector(willChangeValueForKey:),
|
||||
methodImp = class_getMethodImplementation(superClass, methodSelector);
|
||||
methodSelector = @selector(willChangeValueForKey:),
|
||||
methodImp = class_getMethodImplementation(superClass, methodSelector);
|
||||
|
||||
methodImp(self, methodSelector, aKey);
|
||||
|
||||
|
||||
if (!aKey)
|
||||
return;
|
||||
|
||||
@@ -496,10 +497,11 @@ var kvoNewAndOld = CPKeyValueObservingOptionNew|CPKeyValueObservingOptionOld,
|
||||
- (void)didChangeValueForKey:(CPString)aKey
|
||||
{
|
||||
var superClass = [self class],
|
||||
methodSelector = @selector(didChangeValueForKey:),
|
||||
methodImp = class_getMethodImplementation(superClass, methodSelector);
|
||||
methodSelector = @selector(didChangeValueForKey:),
|
||||
methodImp = class_getMethodImplementation(superClass, methodSelector);
|
||||
|
||||
methodImp(self, methodSelector, aKey);
|
||||
|
||||
|
||||
if (!aKey)
|
||||
return;
|
||||
|
||||
@@ -509,10 +511,11 @@ var kvoNewAndOld = CPKeyValueObservingOptionNew|CPKeyValueObservingOptionOld,
|
||||
- (void)willChange:(CPKeyValueChange)change valuesAtIndexes:(CPIndexSet)indexes forKey:(CPString)aKey
|
||||
{
|
||||
var superClass = [self class],
|
||||
methodSelector = @selector(willChange:valuesAtIndexes:forKey:),
|
||||
methodImp = class_getMethodImplementation(superClass, methodSelector);
|
||||
methodSelector = @selector(willChange:valuesAtIndexes:forKey:),
|
||||
methodImp = class_getMethodImplementation(superClass, methodSelector);
|
||||
|
||||
methodImp(self, methodSelector, change, indexes, aKey);
|
||||
|
||||
|
||||
if (!aKey)
|
||||
return;
|
||||
|
||||
@@ -524,10 +527,11 @@ var kvoNewAndOld = CPKeyValueObservingOptionNew|CPKeyValueObservingOptionOld,
|
||||
- (void)didChange:(CPKeyValueChange)change valuesAtIndexes:(CPIndexSet)indexes forKey:(CPString)aKey
|
||||
{
|
||||
var superClass = [self class],
|
||||
methodSelector = @selector(didChange:valuesAtIndexes:forKey:),
|
||||
methodImp = class_getMethodImplementation(superClass, methodSelector);
|
||||
methodSelector = @selector(didChange:valuesAtIndexes:forKey:),
|
||||
methodImp = class_getMethodImplementation(superClass, methodSelector);
|
||||
|
||||
methodImp(self, methodSelector, change, indexes, aKey);
|
||||
|
||||
|
||||
if (!aKey)
|
||||
return;
|
||||
|
||||
|
||||
Reference in new issue
Block a user