[richfaces-svn-commits] JBoss Rich Faces SVN: r5303 - trunk/ui/tooltip/src/main/resources/org/richfaces/renderkit/html/scripts.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Fri Jan 11 10:31:56 EST 2008


Author: sergeyhalipov
Date: 2008-01-11 10:31:56 -0500 (Fri, 11 Jan 2008)
New Revision: 5303

Modified:
   trunk/ui/tooltip/src/main/resources/org/richfaces/renderkit/html/scripts/tooltip.js
Log:
http://jira.jboss.com/jira/browse/RF-1485

Modified: trunk/ui/tooltip/src/main/resources/org/richfaces/renderkit/html/scripts/tooltip.js
===================================================================
--- trunk/ui/tooltip/src/main/resources/org/richfaces/renderkit/html/scripts/tooltip.js	2008-01-11 15:10:13 UTC (rev 5302)
+++ trunk/ui/tooltip/src/main/resources/org/richfaces/renderkit/html/scripts/tooltip.js	2008-01-11 15:31:56 UTC (rev 5303)
@@ -213,6 +213,7 @@
 	},
 	
 	doShow: function(e){
+		this.setScrollDelta();
 		
 		var obj;
 		if (!e) var e = window.event;
@@ -318,6 +319,8 @@
 			window.clearTimeout(this.hidingTimerHandle);
 			this.hidingTimerHandle = undefined;
 		}
+		
+		this.scrollDelta = undefined;
 	},
 	
 	doEnable: function(){
@@ -327,11 +330,28 @@
 		this.disabled = true;
 	},
 	
+	setScrollDelta: function() {
+		if (!this.scrollDelta) {
+			this.scrollDelta = [0, 0];
+		}
+		var parentNode = this.parent;
+		while (parentNode && !/^body$/i.test(parentNode.tagName)) {
+			if (/^absolute$/i.test(Richfaces.getComputedStyle(parentNode, "position"))) {
+				if (parentNode.scrollLeft) {
+					this.scrollDelta[0] += parentNode.scrollLeft;
+				}
+				if (parentNode.scrollTop) {
+					this.scrollDelta[1] += parentNode.scrollTop;
+				}
+			}
+			parentNode = parentNode.parentNode;
+		}
+	},
+	
 	/*
 	 * we can pass here not event only, but also object {'clientX':XXX, 'clientY':XXX}
 	 */
 	setToolTipPosition: function(e){
-
 		var toolTipX=0;
 		var toolTipY=0;
 		
@@ -364,6 +384,10 @@
 		
 		var coords = this.fitToolTip(e.clientX, e.clientY, {'x':toolTipX , 'y':toolTipY},elementDim, horizontalDirection, verticalDirection, {'x':this.horizontalOffset, 'y':this.verticalOffset});
 		
+		if (this.scrollDelta) {
+			coords.x += this.scrollDelta[0];
+			coords.y += this.scrollDelta[1];
+		}
 		Element.setStyle(this.toolTip, {"left": coords.x + "px", "top": coords.y + "px"});
 		if(this.iframe)
 		{




More information about the richfaces-svn-commits mailing list