You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by gs...@apache.org on 2007/12/19 22:04:30 UTC

svn commit: r605696 - /wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/wicket-date.js

Author: gseitz
Date: Wed Dec 19 13:04:29 2007
New Revision: 605696

URL: http://svn.apache.org/viewvc?rev=605696&view=rev
Log:
WICKET-1236: take scroll position into account when positioning the datepicker

Modified:
    wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/wicket-date.js

Modified: wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/wicket-date.js
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/wicket-date.js?rev=605696&r1=605695&r2=605696&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/wicket-date.js (original)
+++ wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/wicket-date.js Wed Dec 19 13:04:29 2007
@@ -104,16 +104,19 @@
 	viewPortHeight = Wicket.DateTime.getViewportHeight();	
 	viewPortWidth = YAHOO.util.Dom.getViewportWidth();
 	
+	// also take scroll position into account
+	scrollPos = [YAHOO.util.Dom.getDocumentScrollLeft(), YAHOO.util.Dom.getDocumentScrollTop()];
+	
 	// correct datepicker's position so that it isn't rendered off screen on the right side or bottom
-	if (targetPos[0] + subjectWidth > viewPortWidth) {
+	if (targetPos[0] + subjectWidth > scrollPos[0] + viewPortWidth) {
 		// correct horizontal position
-		YAHOO.util.Dom.setX(subject, viewPortWidth - subjectWidth);
+		YAHOO.util.Dom.setX(subject, Math.max(targetPos[0], viewPortWidth) - subjectWidth);
 	} else {
 		YAHOO.util.Dom.setX(subject, targetPos[0]);
 	}
-	if (targetPos[1] + targetHeight + 1 + subjectHeight > viewPortHeight) {
+	if (targetPos[1] + targetHeight + 1 + subjectHeight > scrollPos[1] + viewPortHeight) {
 		// correct vertical position
-		YAHOO.util.Dom.setY(subject, viewPortHeight - subjectHeight);
+		YAHOO.util.Dom.setY(subject, Math.max(targetPos[1], viewPortHeight) - subjectHeight);
 	} else {
 		YAHOO.util.Dom.setY(subject, targetPos[1] + targetHeight + 1);
 	}