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

        Tyler Johnson created issue -
        Tyler Johnson made changes -
        Field Original Value New Value
        Salesforce Case Reference 5007000000QXFurAAH
        Tyler Johnson made changes -
        Attachment sf-11862.war [ 16023 ]
        Ken Fyten made changes -
        Fix Version/s 3.4 [ 10770 ]
        Ken Fyten made changes -
        Assignee Arturo Zambrano [ artzambrano ]
        Assignee Priority P1 [ 10010 ]
        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.
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #36258 Mon Jun 17 12:58:01 MDT 2013 art.zambrano ICE-9327 ice:SelectInputText value/text listeners only fire if enter hit twice when using IME... fixed by adding a keyup event to trigger the request when the keypress event didn't fire
        Files Changed
        Commit graph MODIFY /icefaces3/trunk/icefaces/compat/core/src/main/javascript/extras/extras.js
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #36259 Mon Jun 17 13:05:19 MDT 2013 art.zambrano ICE-9327 ice:SelectInputText value/text listeners only fire if enter hit twice when using IME... fixed by adding a keyup event to trigger the request when the keypress event didn't fire
        Files Changed
        Commit graph MODIFY /icefaces3/trunk/icefaces/ace/component/resources/icefaces.ace/autocompleteentry/autocompleteentry.js
        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.
        Arturo Zambrano made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        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.
        Ken Fyten made changes -
        Resolution Fixed [ 1 ]
        Status Resolved [ 5 ] Reopened [ 4 ]
        Ken Fyten made changes -
        Fix Version/s EE-3.3.0.GA [ 10572 ]
        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.
        Arturo Zambrano made changes -
        Status Reopened [ 4 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Ken Fyten made changes -
        Fix Version/s 4.0 [ 11382 ]
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

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

            Dates

            • Created:
              Updated:
              Resolved: