Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8232093

[macos] Java/Swing on Mac produces incorrect key codes for dead key release events

    XMLWordPrintable

Details

    • x86
    • os_x

    Description

      ADDITIONAL SYSTEM INFORMATION :
      Tested with Java 8 and 11.0.4.

      A DESCRIPTION OF THE PROBLEM :
      In a few cases, no key press event is generated for a dead key. Examples:

      Dead Circumflex (Alt I) on U.S. International keyboard layout
      Dead Double Grave (Alt H) on Croatian keyboard layout
      Dead Perispomene (Alt K) on Croatian keyboard layout
      Dead Acute+Diaeresis (Alt ;) on Greek keyboard layout
      Dead Acute+Diaeresis (Shift W) on Greek keyboard layout
      (Other examples may exist as well.)

      Usually, however, the key release event contains the key code for the unmodified dead key or for the equivalent key on a U.S. keyboard. Examples:

      U.S. Keyboard Layout:
      Dead Acute (Alt E) produces VK_DEAD_ACUTE press, VK_E release.

      French Keyboard Layout:
      Dead Acute (Alt Shift 1) produces VK_DEAD_ACUTE press, VK_1 release.

      Canadian French Keyboard Layout:
      Dead Circumflex ([) produces VK_DEAD_CIRCUMFLEX press, VK_OPEN_BRACKET release.

      US International Keyboard Layout:
      Dead Tilde (Shift `) produces VK_DEAD_TILDE press, VK_BACK_QUOTE release.

      Numerous other examples exist in these keyboard layouts and others. Basically no dead key generates a correct key release event, and a few of them generate no key press event.


      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      See description.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      See description.
      ACTUAL -
      See description.

      FREQUENCY : always


      Attachments

        Activity

          People

            achung Alisen Chung
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: