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);
        }


Reply via email to