mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-08-25 04:57:03 +00:00
FIx for drag and drop without CPDOMWindowBridge.
Reviewed by me.
This commit is contained in:
@@ -26,6 +26,7 @@
|
||||
@import <AppKit/CPImageView.j>
|
||||
|
||||
#import "CoreGraphics/CGGeometry.h"
|
||||
#import "Platform/Platform.h"
|
||||
|
||||
|
||||
#define DRAGGING_WINDOW(anObject) ([anObject isKindOfClass:[CPWindow class]] ? anObject : [anObject window])
|
||||
@@ -241,14 +242,20 @@ var CPDragServerUpdateDragging = function(anEvent)
|
||||
- (void)dragView:(CPView)aView fromWindow:(CPWindow)aWindow at:(CGPoint)viewLocation offset:(CGSize)mouseOffset event:(CPEvent)anEvent pasteboard:(CPPasteboard)aPasteboard source:(id)aSourceObject slideBack:(BOOL)slideBack
|
||||
{
|
||||
var eventLocation = [anEvent locationInWindow];
|
||||
|
||||
|
||||
CPDragServerView = aView;
|
||||
CPDragServerSource = aSourceObject;
|
||||
CPDragServerWindow = aWindow;
|
||||
CPDragServerOffset = CPPointMake(eventLocation.x - viewLocation.x, eventLocation.y - viewLocation.y);
|
||||
CPDragServerPasteboard = [CPPasteboard pasteboardWithName:CPDragPboard];//aPasteboard;
|
||||
|
||||
[_dragWindow setFrameSize:CGSizeMakeCopy([[CPDOMWindowBridge sharedDOMWindowBridge] frame].size)];
|
||||
#if PLATFORM(BROWSER)
|
||||
var platformWindow = [aWindow platformWindow];
|
||||
|
||||
[_dragWindow setPlatformWindow:platformWindow];
|
||||
[_dragWindow setFrameSize:[platformWindow contentBounds]];
|
||||
#endif
|
||||
|
||||
[_dragWindow orderFront:self];
|
||||
|
||||
[aView setFrameOrigin:viewLocation];
|
||||
|
||||
@@ -395,6 +395,17 @@ CPTexturedBackgroundWindowMask
|
||||
return self;
|
||||
}
|
||||
|
||||
- (CPPlatformWindow)platformWindow
|
||||
{
|
||||
return _platformWindow;
|
||||
}
|
||||
|
||||
- (void)setPlatformWindow:(CPPlatformWindow)aPlatformWindow
|
||||
{
|
||||
// FIXME: already visible.
|
||||
_platformWindow = aPlatformWindow;
|
||||
}
|
||||
|
||||
/*!
|
||||
@ignore
|
||||
*/
|
||||
@@ -626,9 +637,7 @@ CPTexturedBackgroundWindowMask
|
||||
*/
|
||||
- (void)orderFront:(id)aSender
|
||||
{
|
||||
if (![_platformWindow isVisible])
|
||||
[_platformWindow orderFront:self];
|
||||
|
||||
[_platformWindow orderFront:self];
|
||||
[_platformWindow order:CPWindowAbove window:self relativeTo:nil];
|
||||
}
|
||||
|
||||
|
||||
@@ -254,6 +254,9 @@ var CTRL_KEY_CODE = 17;
|
||||
theDocument.addEventListener("touchmove", touchEventCallback, NO);
|
||||
theDocument.addEventListener("touchcancel", touchEventCallback, NO);
|
||||
|
||||
_DOMWindow.addEventListener("DOMMouseScroll", scrollEventCallback, NO);
|
||||
_DOMWindow.addEventListener("mousewheel", scrollEventCallback, NO);
|
||||
|
||||
_DOMWindow.addEventListener("resize", resizeEventCallback, NO);
|
||||
|
||||
_DOMWindow.addEventListener("beforeunload", function()
|
||||
|
||||
Reference in New Issue
Block a user