Monotone-Parent: 46cfc558341a7482d8ce926d2a12cd80e68a2c98

Monotone-Revision: 9fe3529f7c302f3b3b2e565e15ab9d4dabc1943d

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2006-11-13T22:32:42
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau 2006-11-13 22:32:42 +00:00
parent 6211790491
commit 6e1066d372

View file

@ -12,27 +12,33 @@ var SOGODragAndDropSourceInterface = {
this.addEventListener("mousedown", this.dragGestureMouseDownHandler, false); this.addEventListener("mousedown", this.dragGestureMouseDownHandler, false);
}, },
dragGestureMouseDownHandler: function (event) { dragGestureMouseDownHandler: function (event) {
// log("mousedown");
document._dragGestureStartPoint = new Array(event.clientX, event.clientY); document._dragGestureStartPoint = new Array(event.clientX, event.clientY);
document._currentMouseGestureObject = this; document._currentMouseGestureObject = this;
window.addEventListener("mousemove", this.dragGestureMouseMoveHandler, false); window.addEventListener("mousemove", this.dragGestureMouseMoveHandler, false);
window.addEventListener("mouseup", this.dragGestureMouseUpHandler, false); window.addEventListener("mouseup", this.dragGestureMouseUpHandler, false);
}, },
dragGestureMouseUpHandler: function (event) { dragGestureMouseUpHandler: function (event) {
log("mouseup");
document._currentMouseGestureObject._removeGestureHandlers(); document._currentMouseGestureObject._removeGestureHandlers();
}, },
dragGestureMouseMoveHandler: function (event) { dragGestureMouseMoveHandler: function (event) {
log("source mouse move (target: " + event.target + ")"); // log("source mouse move (target: " + event.target + ")");
var deltaX = event.clientX - document._dragGestureStartPoint[0]; var deltaX = event.clientX - document._dragGestureStartPoint[0];
var deltaY = event.clientY - document._dragGestureStartPoint[1]; var deltaY = event.clientY - document._dragGestureStartPoint[1];
if (Math.sqrt((deltaX * deltaX) + (deltaY * deltaY)) > 10) { if (Math.sqrt((deltaX * deltaX) + (deltaY * deltaY)) > 10) {
event.stopPropagation(); // log("event: " + event);
event.preventDefault(); // event.stopPropagation();
event.returnValue = false; // event.preventDefault();
event.cancelBubble = false; event.returnValue = true;
event.cancelBubble = true;
var object = document._currentMouseGestureObject; var object = document._currentMouseGestureObject;
var point = document._dragGestureStartPoint; var point = document._dragGestureStartPoint;
document._currentMouseGestureObject._removeGestureHandlers();
document.DNDManager.startDragging(object, point); document.DNDManager.startDragging(object, point);
document._currentMouseGestureObject._removeGestureHandlers();
// var mouseup = document.createEvent("MouseEvent");
// mouseup.initEvent("mouseup", true, true);
// event.target.dispatchEvent(mouseup);
// var dragStart = document.createEvent("MouseEvents"); // var dragStart = document.createEvent("MouseEvents");
// dragStart.initMouseEvent("draggesture-hack", true, true, window, // dragStart.initMouseEvent("draggesture-hack", true, true, window,
// event.detail, event.screenX, event.screenY, // event.detail, event.screenX, event.screenY,
@ -88,8 +94,7 @@ document.DNDManager = {
var source = document.DNDManager._lookupSource (object); var source = document.DNDManager._lookupSource (object);
if (source) { if (source) {
// log("source known"); // log("source known");
document.DNDManager.currentDndOperation document.DNDManager.currentDndOperation = new document.DNDOperation(source, point);
= new document.DNDOperation (source, point);
window.addEventListener("mouseup", window.addEventListener("mouseup",
document.DNDManager.destinationDrop, false); document.DNDManager.destinationDrop, false);
window.addEventListener("mouseover", window.addEventListener("mouseover",
@ -138,6 +143,7 @@ document.DNDManager = {
// log("over: " + event.target); // log("over: " + event.target);
}, },
destinationDrop: function (event) { destinationDrop: function (event) {
// log ("drop...");
var operation = document.DNDManager.currentDndOperation; var operation = document.DNDManager.currentDndOperation;
if (operation) { if (operation) {
window.removeEventListener("mouseup", window.removeEventListener("mouseup",
@ -149,7 +155,7 @@ document.DNDManager = {
window.removeEventListener("mouseout", window.removeEventListener("mouseout",
document.DNDManager.destinationExit, false); document.DNDManager.destinationExit, false);
if (operation.destination == event.target) { if (operation.destination == event.target) {
log("drag / drop: " + operation.source + " to " + operation.destination); // log("drag / drop: " + operation.source + " to " + operation.destination);
if (operation.destination.dndExit) if (operation.destination.dndExit)
event.target.dndExit(); event.target.dndExit();
if (operation.destination.dndDrop) { if (operation.destination.dndDrop) {