ICEfaces
  1. ICEfaces
  2. ICE-9327

ice:SelectInputText value/text listeners only fire if enter hit twice when using IME

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: EE-3.2.0.GA
    • Fix Version/s: EE-3.3.0.GA, 4.0.BETA, 4.0
    • Component/s: ICE-Components
    • Labels:
      None
    • Environment:
      Firefox
    • Assignee Priority:
      P1
    • Salesforce Case Reference:

      Description

      This issue only occurs on Firefox and when using Microsoft IME pad to enter Japanese text into the ice:selectInputText. Change the IME pad to one of the Japanese dialects (I use full width Katakana) and after entering a character, the only way to fire the valueChangeListener and/or textChangeListener is to hit the enter button twice. This is not an issue on Chrome. I have setup the IE9 box with the IME pad and can assist in demonstrating. Test case attached. This issue may depend on ICE-8909.

        Activity

        Hide
        Arturo Zambrano added a comment -

        What I've found so far is that FF just doesn't register the first enter as a keypress event. All the logic to fetch the list of results happens in the 'onKeyPress' method in our call, which is triggered onkeypress in FF and onkeydown on Chrome and IE. I suppose the IME pad has it's own events registered then a key is pressed, and that's why it's not registered at first in FF. Using onkeypress in FF and onkeydown on Chrome and IE is the way things have always worked for ice:selectInputText and ace:autoCompleteEntry. Just changing that would cause several regressions. So, the solution would have to be more creative and should try to address just this case, without affecting the rest of the cases.

        Show
        Arturo Zambrano added a comment - What I've found so far is that FF just doesn't register the first enter as a keypress event. All the logic to fetch the list of results happens in the 'onKeyPress' method in our call, which is triggered onkeypress in FF and onkeydown on Chrome and IE. I suppose the IME pad has it's own events registered then a key is pressed, and that's why it's not registered at first in FF. Using onkeypress in FF and onkeydown on Chrome and IE is the way things have always worked for ice:selectInputText and ace:autoCompleteEntry. Just changing that would cause several regressions. So, the solution would have to be more creative and should try to address just this case, without affecting the rest of the cases.
        Hide
        Arturo Zambrano added a comment -

        Committed fix to trunk at revision 36258. Also applied fix to ace:autoCompleteEntry at revision 36259.

        The fix consists in registering a keyup event that will send the request when the keypress event didn't fire. This applies only to FF.

        Show
        Arturo Zambrano added a comment - Committed fix to trunk at revision 36258. Also applied fix to ace:autoCompleteEntry at revision 36259. The fix consists in registering a keyup event that will send the request when the keypress event didn't fire. This applies only to FF.
        Hide
        Ken Fyten added a comment -

        Re-open to add to EE 3.3 branch.

        Show
        Ken Fyten added a comment - Re-open to add to EE 3.3 branch.
        Hide
        Arturo Zambrano added a comment -

        Committed fix to 3.3 EE tag at revision 36283.

        Show
        Arturo Zambrano added a comment - Committed fix to 3.3 EE tag at revision 36283.

          People

          • Assignee:
            Arturo Zambrano
            Reporter:
            Tyler Johnson
          • Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: