Project

General

Profile

Bug #9732

Pressing Dead keys with Dutch system language produces different key events depending on the system environment and the used Chrome browser version.

Added by Sergey Ivanovskiy over 1 year ago. Updated over 1 year ago.

Status:
Test
Priority:
Normal
Target version:
-
Start date:
Due date:
% Done:

100%

billable:
No
vendor_id:
GCD
case_num:
version_reported:
version_resolved:
production:
No
env_name:
topics:

History

#3 Updated by Sergey Ivanovskiy over 1 year ago

  • Status changed from New to WIP

#4 Updated by Sergey Ivanovskiy over 1 year ago

For Ubuntu 22.04 and Google Chrome Version 133.0.6943.141 (Official Build) (64-bit) and Dutch system language
I observed this sequence of keyboard events for my Machenike notebook when
1) Dead key ' was pressed down and up.
2) The key a was pressed down and up.

keydown  keyCode=229       which=229       charCode=0         AltGraph=false
         shiftKey=false ctrlKey=false altKey=false metaKey=false
         key=Process keyValue=80 char=undefined code=Quote location=0 repeat=false
´
textInput data=´
keyup    keyCode=222       which=222       charCode=0         AltGraph=false
         shiftKey=false ctrlKey=false altKey=false metaKey=false
         key=Dead keyValue=68 char=undefined code=Quote location=0 repeat=false
keydown  keyCode=65  (A)   which=65  (A)   charCode=0         AltGraph=false
         shiftKey=false ctrlKey=false altKey=false metaKey=false
         key=a keyValue=97 char=undefined code=KeyA location=0 repeat=false
keypress keyCode=97  (a)   which=97  (a)   charCode=97  (a)   AltGraph=false
         shiftKey=false ctrlKey=false altKey=false metaKey=false
         key=a keyValue=97 char=undefined code=KeyA location=0 repeat=false
a
textInput data=a
keyup    keyCode=65  (A)   which=65  (A)   charCode=0         AltGraph=false
         shiftKey=false ctrlKey=false altKey=false metaKey=false
         key=a keyValue=97 char=undefined code=KeyA location=0 repeat=false

#5 Updated by Sergey Ivanovskiy over 1 year ago

But for the desktop Ubuntu 18.04 and Google Chrome Version 134.0.6998.35 (Official Build) (64-bit) and Dutch system language
the sequence of observed keyboards events for the same pressed keys was

keydown  keyCode=222       which=222       charCode=0         AltGraph=false
         shiftKey=false ctrlKey=false altKey=false metaKey=false
         key=Dead keyValue=68 char=undefined code=Quote location=0 repeat=false
keyup    keyCode=222       which=222       charCode=0         AltGraph=false
         shiftKey=false ctrlKey=false altKey=false metaKey=false
         key=Dead keyValue=68 char=undefined code=Quote location=0 repeat=false
keydown  keyCode=65  (A)   which=65  (A)   charCode=0         AltGraph=false
         shiftKey=false ctrlKey=false altKey=false metaKey=false
         key=a keyValue=97 char=undefined code=KeyA location=0 repeat=false
keypress keyCode=225       which=225       charCode=225       AltGraph=false
         shiftKey=false ctrlKey=false altKey=false metaKey=false
         key=á keyValue=225 char=undefined code=KeyA location=0 repeat=false
á
textInput data=á
keyup    keyCode=65  (A)   which=65  (A)   charCode=0         AltGraph=false
         shiftKey=false ctrlKey=false altKey=false metaKey=false
         key=a keyValue=97 char=undefined code=KeyA location=0 repeat=false

#6 Updated by Sergey Ivanovskiy over 1 year ago

I found that gedit for these two systems behaves differently when
1) Dead key ' was pressed down and up.
2) The key a was pressed down and up.
For the first case, Ubuntu 22.04, underscore with ' was displayed at the step 1 and pressing a on the step 2 printed á so the underscore symbol and ' were replaced by á and contrary to the first one, for Ubuntu 18.04 at the first step no symbols were displayed and the second step produced á.
At this moment I do not understand why these two systems behave differently. I would appreciate any advise that can help to investigate this issue.
Although I can add the code changes that just handles the first observed case correctly.

#7 Updated by Sergey Ivanovskiy over 1 year ago

I tested another desktop system, Ubuntu 22.04 and Google Chrome Version 133.0.6943.141 (Official Build) (64-bit) and found that it behaves like the desktop system Ubuntu 18.04. So the Machenike notebook is an exceptional case.

#8 Updated by Sergey Ivanovskiy over 1 year ago

Create branch 9293d.

#9 Updated by Sergey Ivanovskiy over 1 year ago

  • Status changed from WIP to Review
  • % Done changed from 0 to 100
  • reviewer Eugenie Lyzenko, Greg Shah, Hynek Cihlar added

Committed revision 15765 (9293d). Please review changes.

#10 Updated by Hynek Cihlar over 1 year ago

  • Status changed from Review to WIP
  • % Done changed from 100 to 90

Code review 9293d.

Just some minor points.

Please deduplicate the code checking for active IME (where "active" and "up" are checked and the inputMethodEditor values reset).

It would be more readable to use the standard object notation for inputMethodEditor instead of using array indexes.

#11 Updated by Sergey Ivanovskiy over 1 year ago

  • % Done changed from 90 to 100
  • Status changed from WIP to Review

Thank you for the review, I fixed all these notes in rev 15766 (9293d). Please review.

#12 Updated by Hynek Cihlar over 1 year ago

  • Status changed from Review to Internal Test

Sergey Ivanovskiy wrote:

Thank you for the review, I fixed all these notes in rev 15766 (9293d). Please review.

Night and day :-). The changes look good. Please go ahead with regression testing.

#13 Updated by Sergey Ivanovskiy over 1 year ago

I tested the large customer application and did not find regressions.

#14 Updated by Sergey Ivanovskiy over 1 year ago

But sadly I found the issue that relates to FillinGuiImpl and EditorGuiImpl does not display some codes, for an example 8364 (that is euro sign), although the corresponding key event evaluated as printable and jscript keyboard driver delivers key code correctly. I do not understand if it is regression or not. In any case it is not related to the current changes.

#15 Updated by Eugenie Lyzenko over 1 year ago

I have no objections for rev 9293d/15766.

#16 Updated by Eugenie Lyzenko over 1 year ago

Sergey Ivanovskiy wrote:

But sadly I found the issue that relates to FillinGuiImpl and EditorGuiImpl does not display some codes, for an example 8364 (that is euro sign), although the corresponding key event evaluated as printable and jscript keyboard driver delivers key code correctly. I do not understand if it is regression or not. In any case it is not related to the current changes.

Test with trunk, if issue is there too - this is not a regression. Otherwise it is a regression.

#17 Updated by Sergey Ivanovskiy over 1 year ago

Yes, the same issue is in the trunk. Should I create new issue or work here and fix this with 9293d?

#18 Updated by Hynek Cihlar over 1 year ago

Sergey Ivanovskiy wrote:

Yes, the same issue is in the trunk. Should I create new issue or work here and fix this with 9293d?

If it is something quick, then I would put it in 9293d.

#19 Updated by Sergey Ivanovskiy over 1 year ago

Hynek Cihlar wrote:

Sergey Ivanovskiy wrote:

Yes, the same issue is in the trunk. Should I create new issue or work here and fix this with 9293d?

If it is something quick, then I would put it in 9293d.

Yes, it happens because ThinClient.waitForEvent creates new KeyInput from the original keyInputEvent and incorrect constructor is used so KeyInput.getChar() becomes incorrect due to incorrect transformation of key to the printed character. Please review the committed revision 15767 (9293d). Checking CHUI regression tests.

#20 Updated by Sergey Ivanovskiy over 1 year ago

  • Status changed from Internal Test to Review

#21 Updated by Hynek Cihlar over 1 year ago

Code review 9293d revision 15767. A minor point, changing convertKey param name to unicodePoint would make the use of KeyInput more obvious.

#22 Updated by Sergey Ivanovskiy over 1 year ago

9293d rev. 15767 passed the main regression in 3 runs, in first run there are 3 failed tests including 1 known failed tests and two single runs for each of the failed tests.

#23 Updated by Sergey Ivanovskiy over 1 year ago

Hynek Cihlar wrote:

Code review 9293d revision 15767. A minor point, changing convertKey param name to unicodePoint would make the use of KeyInput more obvious.

I fixed this issue in rev 15768 (9293d).

#24 Updated by Sergey Ivanovskiy over 1 year ago

9293d was rebased rev 15784 and added history entries rev 15785.

#25 Updated by Sergey Ivanovskiy over 1 year ago

9293d also passed ctrl-c regression tests.

#26 Updated by Sergey Ivanovskiy over 1 year ago

I fixed found issues and the changes passed CHUI regression tests. Can 9392d be merged into the trunk?

#27 Updated by Hynek Cihlar over 1 year ago

  • Status changed from Review to Merge Pending

The changes are good. Please merge 9293d to trunk.

#28 Updated by Sergey Ivanovskiy over 1 year ago

  • Status changed from Merge Pending to Test

Branch 9293d was merged into trunk as rev. 15790 and archived.

Also available in: Atom PDF