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

Call to insertText with single character from custom Input Method ignored

    XMLWordPrintable

Details

    • b25
    • x86
    • os_x

    Description

      FULL PRODUCT VERSION :
      I don't have java installed to run at the command line. OmegaT reports that it is running on Java 1.8.0_144 (64-bit). jEdit reports that is using Java 1.8.0_151 (which I downloaded directly, independent of jEdit).

      ADDITIONAL OS VERSION INFORMATION :
      macOS 10.12.6 (16G1114)

      EXTRA RELEVANT SYSTEM CONFIGURATION :
      I am reporting behavior observed in both OmegaT and jEdit (see version info).

      Here is the original bug report filed with OmegaT: https://sourceforge.net/p/omegat/bugs/889/

      A DESCRIPTION OF THE PROBLEM :
      Using the Keyman (Keyman.com) ISIS-Devanagari keyboard, I expected to be able to type the letter "j" and see ज, but instead I just got a plain "j". Typing a subsequent "i" does insert the correct two-character sequence (जि), but it fails to delete and replace the errant "j" character. I have written a small test input method to reproduce this with a minimum of code, and it appears that the problem is calling insertText: and passing a single character as the string to insert). If I pass two ज characters or a space followed by a ज, it outputs just fine. I also tested this with a simple Roman script letter using a test case where typing the letter "l" was supposed to produce a "j" and that also failed. If you don't want to download and use Keyman to reproduce this, I would be happy to provide my simple test IM.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      To reproduce using Keyman:
      1) Download and install Keyman for macOS from https://keyman.com/macos/
      2) Follow instructions to install Keyman and set it up as an Input Method: https://help.keyman.com/products/mac/1.0/docs/start_download-install_keyman.php?_ga=2.174123428.780044351.1516121660-886959843.1497845253
      3) Follow instructions here to download and install a keyboard: https://help.keyman.com/products/mac/1.0/docs/start_download-install_keyboard.php. Download and select the ISIS-Devanagari keyboard as the keyboard for Keyman to use.
      In OmegaT, jEdit, or any application that uses the text editor in JDK, type a "j".

      If necessary, I can provide a very simple test IM that will illustrate the problem without requiring the above steps, but since Keyman is already packaged up nicely for easy installation, this is probably the easiest way to reproduce.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      You should get a ज character. (Furthermore, typing a subsequent "i" should replace the ज with जि. However, this could require some more work on our end because many "legacy" apps that don't use Apple's editing controls require a special mode in Keyman to correctly handle character replacements.) You can observe the correct behavior of the keyboard in any standard Apple app, such as Notes or Messages.
      ACTUAL -
      Outputs a plain "j" character.

      REPRODUCIBILITY :
      This bug can be reproduced always.

      CUSTOMER SUBMITTED WORKAROUND :
      The only workaround I know of would be to type the text in another application and paste it into the application that uses the JDK editor.

      Note that this deficiency is not directly hampering the development of Keyman (which has been chosen as the software to serve as the official reference implementation for the LDML standard). It does, however, affect all of any software whose editing is based on this JDK editing control. Although OmegaT declined to follow up on this directly, they do have affected users. I don't know of any existing users complaining about jEdit or any other software that uses this control, but there may well be some.

      Attachments

        Issue Links

          Activity

            People

              srl Steven Loomis
              webbuggrp Webbug Group
              Votes:
              1 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: