done

On Fri, Jun 19, 2009 at 17:55, Igor Vaynberg <[email protected]>wrote:

> any plans to check this into trunk?
>
> On Fri, Jun 19, 2009 at 2:27 AM, <[email protected]> wrote:
> > Author: jcompagner
> > Date: Fri Jun 19 09:27:06 2009
> > New Revision: 786424
> >
> > URL: http://svn.apache.org/viewvc?rev=786424&view=rev
> > Log:
> > more fixes for auto compleet (IE and so on)
> >
> > Modified:
> >
>  
> wicket/branches/wicket-1.3.x/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
> >
> > Modified:
> wicket/branches/wicket-1.3.x/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
> > URL:
> http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js?rev=786424&r1=786423&r2=786424&view=diff
> >
> ==============================================================================
> > ---
> wicket/branches/wicket-1.3.x/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
> (original)
> > +++
> wicket/branches/wicket-1.3.x/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
> Fri Jun 19 09:27:06 2009
> > @@ -53,9 +53,7 @@
> >        var objonchange;
> >        var objonchangeoriginal;
> >
> > -       // holds the eventual margins, padding, etc. of the menu
> container.
> > -       // it is computed when the menu is first rendered, and then
> reused.
> > -       var initialDelta = -1;
> > +      var ignoreOneFocusGain = false; // on FF, clicking an option in
> the popup would make field loose focus; focus() call only has effect in FF
> after popup is hidden, so the re-focusing must not show popup again in this
> case
> >
> >        // holds a throttler, for not sending many requests if the user
> types
> >        // too quickly.
> > @@ -90,6 +88,7 @@
> >
> >        obj.onblur=function(event){
> >                if(mouseactive==1){
> > +                  ignoreOneFocusGain = true;
> >                        Wicket.$(elementId).focus();
> >                        return killEvent(event);
> >                }
> > @@ -98,20 +97,21 @@
> >         }
> >
> >        obj.onfocus=function(event){
> > -            if (cfg.showListOnFocusGain) {
> > +            if (!ignoreOneFocusGain && cfg.showListOnFocusGain) {
> >                 if (cfg.showCompleteListOnFocusGain) {
> >                     updateChoices(true);
> >                 } else {
> >                     updateChoices();
> >                 }
> >             }
> > +            ignoreOneFocusGain = false;
> >                if(typeof
> objonfocus=="function")objonfocus.apply(this,[event]);
> >         }
> >
> >         obj.onkeydown=function(event){
> >             switch(wicketKeyCode(Wicket.fixEvent(event))){
> >                 case KEY_UP:
> > -                       if(selected>-1)selected--;
> > +                       if(selected>-1) selected--;
> >                    if(selected==-1){
> >                            hideAutoComplete();
> >                        } else {
> > @@ -120,9 +120,7 @@
> >                    if(Wicket.Browser.isSafari())return killEvent(event);
> >                        break;
> >                 case KEY_DOWN:
> > -                               if(selected<elementCount-1){
> > -                           selected++;
> > -                       }
> > +                               if(selected<elementCount-1) selected++;
> >                    if(visible==0){
> >                            updateChoices();
> >                    } else {
> > @@ -327,16 +325,17 @@
> >     }
> >
> >         function getPosition(obj) {
> > -        var leftPosition=0;
> > -        var topPosition=0;
> > -        do {
> > +        var leftPosition = obj.offsetLeft || 0;
> > +        var topPosition = obj.offsetTop || 0;
> > +        obj = obj.offsetParent;
> > +        while (obj && obj != document.documentElement && obj !=
> document.body) {
> >             topPosition += obj.offsetTop || 0;
> >                topPosition -= obj.scrollTop || 0;
> >             leftPosition += obj.offsetLeft || 0;
> >                leftPosition -= obj.scrollLeft || 0;
> >             obj = obj.offsetParent;
> > -        } while (obj);
> > -
> > +        }
> > +
> >         return [leftPosition,topPosition];
> >     }
> >
> > @@ -362,9 +361,15 @@
> >                   if(typeof objonchange=="function")
> objonchange.apply(wicketGet(elementId),[event]);
> >                 }
> >                 hideAutoComplete();
> > +                if (Wicket.Focus.getFocusedElement() != input)
> > +                {
> > +                    ignoreOneFocusGain = true;
> > +                    input.focus();
> > +                }
> >             };
> >
> >             var mouseOverFunc = function(event) {
> > +                mouseactive=1; // Opera needs this as mousemove for menu
> is not always triggered
> >                 selected = getElementIndex(this);
> >                 render();
> >                 showAutoComplete();
> > @@ -452,18 +457,17 @@
> >                        if (classNames != origClassNames)
> >                 node.className = classNames;
> >
> > -                       if ((cfg.maxHeight > -1) && (height <
> cfg.maxHeight))
> > +                       if (cfg.maxHeight > -1)
> >                                height+=node.offsetHeight;
> >
> >                        node = node.nextSibling;
> >                }
> >         if (cfg.maxHeight > -1) {
> > -                       // If we don't exceed the maximum size, we add
> the extra space
> > -                       // that may be there due to padding, margins,
> etc.
> > -                       if (initialDelta == -1)
> > -                               initialDelta =
> menu.parentNode.offsetHeight - height;
> > -               height = height<cfg.maxHeight ? height+initialDelta :
> cfg.maxHeight;
> > -               menu.parentNode.style.height=height+"px";
> > +               if (height<cfg.maxHeight) {
> > +                menu.parentNode.style.height="auto";
> > +            } else {
> > +                   menu.parentNode.style.height=cfg.maxHeight+"px";
> > +            }
> >         }
> >     }
> >
> >
> >
> >
>

Reply via email to