<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi Prasanta,<div class=""><br class=""></div><div class="">I think it would be wise to generate InputMethodEvent for ‘Fullwidth currency symbols’, as well.</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Dmitry <br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 17 Sep 2018, at 10:02, Prasanta Sadhukhan <<a href="mailto:prasanta.sadhukhan@oracle.com" class="">prasanta.sadhukhan@oracle.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">
  

    <meta http-equiv="content-type" content="text/html; charset=utf-8" class="">
  
  <div text="#000000" bgcolor="#FFFFFF" class=""><p class="">Hi All,</p>
    Please review a fix for an issue where<br class="">
    when "yen" symbol is entered from a keyboard using Romaji keyboard
    layout using "backslash" character, it was showing a "backslash"
    character <br class="">
    rather than "yen" symbol.<br class="">
    <br class="">
    This is a regression of <a class="issue-link" data-issue-key="JDK-8068283" href="https://bugs.openjdk.java.net/browse/JDK-8068283" id="key-val" rel="4760961">JDK-8068283</a> where the check to
    control JNI invocation of
    "sun.lwawt.macosx.CInputMethod.insertText(String)" is changed from <br class="">
    "if ([self hasMarkedText] || !fProcessingKeystroke || (utf8Length
    > 1))<br class="">
    to <br class="">
    if ([self hasMarkedText] || !fProcessingKeystroke || (utf16Length
    > 2))<br class="">
    <br class="">
    Now, in this case for "yen" symbol, the utf16Length is 2 so
    InputMethodEvent is not generated, rather a KeyEvent is generated
    for "\" character.<br class="">
    This check was again modified for <a class="issue-link" data-issue-key="JDK-8132503" href="https://bugs.openjdk.java.net/browse/JDK-8132503" id="key-val" rel="4837840">JDK-8132503</a> where the check for
    unichar belongs to certain unicode block is introduced<br class="">
    <br class="">
    <i class="">(utf8Length > 1) && [self
      isCodePointInUnicodeBlockNeedingIMEvent:[useString
      characterAtIndex:0]]</i><br class="">
    <br class="">
    Now, there although utf8Length is 2 the check for codepoint is
    complex or not does not take into account "unicode" currency
    symbols. <br class="">
    It only takes into account CJK symbols and punctuations and
    "Halfwidth and Fullwidth Forms' Unicode block.<br class="">
    <br class="">
    Proposed fix also add "currency" symbol unicode
    [[<a class="moz-txt-link-freetext" href="https://www.fileformat.info/info/unicode/category/Sc/list.htm">https://www.fileformat.info/info/unicode/category/Sc/list.htm</a>]<br class="">
    in the mix so that we can have InputmethodEvent generated for
    currency symbols.<br class="">
    <br class="">
    Bug: <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-8191178">https://bugs.openjdk.java.net/browse/JDK-8191178</a><br class="">
    webrev: <a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~psadhukhan/8191178/webrev.0/">http://cr.openjdk.java.net/~psadhukhan/8191178/webrev.0/</a><br class="">
    <br class="">
    Regards<br class="">
    Prasanta<br class="">
  </div>

</div></blockquote></div><br class=""></div></body></html>