diff options
| author | ctrlaltca@gmail.com <> | 2012-02-02 14:20:09 +0000 | 
|---|---|---|
| committer | ctrlaltca@gmail.com <> | 2012-02-02 14:20:09 +0000 | 
| commit | 871b91b471434aef56e421888bae1146dd74c990 (patch) | |
| tree | 5ec9956bbe56a164f884aee5f5d8a27d9503d0f1 /framework/Web/Javascripts/source | |
| parent | 44b8ec3ad302ed1eb241aac0313951f761aaad8f (diff) | |
Added some dirty js code to get dropcontainer-relative offset for onDrop events of draggable controls
Diffstat (limited to 'framework/Web/Javascripts/source')
| -rwxr-xr-x | framework/Web/Javascripts/source/prado/activecontrols/dragdrop.js | 28 | 
1 files changed, 26 insertions, 2 deletions
| diff --git a/framework/Web/Javascripts/source/prado/activecontrols/dragdrop.js b/framework/Web/Javascripts/source/prado/activecontrols/dragdrop.js index 107269f2..efec6a69 100755 --- a/framework/Web/Javascripts/source/prado/activecontrols/dragdrop.js +++ b/framework/Web/Javascripts/source/prado/activecontrols/dragdrop.js @@ -22,12 +22,36 @@ Object.extend(Prado.WebUI.DropContainer.prototype,  	{
  		var elementId=dragElement.id.replace(/clone_/,"");
  		var req = new Prado.CallbackRequest(this.options.EventTarget, this.options);
 +		var curleft = curtop = 0;
 +		var obj = dropElement;
 +		if (obj.offsetParent) {
 +			curleft = obj.offsetLeft
 +			curtop = obj.offsetTop
 +			while (obj = obj.offsetParent) {
 +				curleft += obj.offsetLeft
 +				curtop += obj.offsetTop
 +			}
 +		}
 +		var scrOfX = 0, scrOfY = 0;
 +		if( typeof( window.pageYOffset ) == 'number' ) {
 +			//Netscape compliant
 +			scrOfY = window.pageYOffset;
 +			scrOfX = window.pageXOffset;
 +		} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
 +			//DOM compliant
 +			scrOfY = document.body.scrollTop;
 +			scrOfX = document.body.scrollLeft;
 +		} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
 +			//IE6 standards compliant mode
 +			scrOfY = document.documentElement.scrollTop;
 +			scrOfX = document.documentElement.scrollLeft;
 +		}
  		req.setCallbackParameter({
  			DragElementID : elementId,
  			ScreenX : event.screenX,
  			ScreenY : event.screenY,
 -			OffsetX : event.offsetX,
 -			OffsetY : event.offsetY,
 +			OffsetX : event.offsetX || event.clientX - curleft + scrOfX,
 +			OffsetY : event.offsetY || event.clientY - curtop + scrOfY,
  			ClientX : event.clientX,
  			ClientY : event.clientY,
  			AltKey : event.altKey,
 | 
