Bug 117008 - Last-letter bug in korean
Summary: Last-letter bug in korean
Status: RESOLVED NOTABUG
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
6.0.3.2 release
Hardware: x86-64 (AMD64) Linux (All)
: medium minor
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: CJK-Korean
  Show dependency treegraph
 
Reported: 2018-04-14 15:07 UTC by sudo0272
Modified: 2018-11-26 16:50 UTC (History)
1 user (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description sudo0272 2018-04-14 15:07:12 UTC
Hi, I'm using Arch Linux and Nimf for Input Method.
In this description, | <= this is a cursor.
In korean, we combine letters to make one letter.
So, when I try to type 안, I have to do those steps:
Input letter | Result letter
ㅇ           |  ㅇ
ㅏ           |  아
ㄴ           |  안

like this.


When I type the last result-letter and move cursor in other place, the letter is cut and pasted.
For example:

before:
안녕하세요|
안녕

and move cursor next to 안녕 like this:
안녕하세요
안녕|

after:
안녕하세
안녕요

this is the error called Last-letter bug.

For your information, I reported this error to the developer of Nimf.
https://github.com/cogniti/nimf/

I wish using Libre-Office without Last-letter bug.
Comment 1 Buovjaga 2018-04-18 19:41:33 UTC
The issue in nimf (closed): https://github.com/cogniti/nimf/issues/88
Comment 2 Xisco Faulí 2018-04-19 08:28:04 UTC
Hello,
Using Nimf, do you reproduce it with another text editor, or only with LibreOffice?
Could you please try with 2 or 3 other text editors to be sure?
Thanks
Comment 3 Xisco Faulí 2018-04-19 08:28:34 UTC
I have set the bug's status to 'NEEDINFO'. Please change it back to
'UNCONFIRMED' once the questions have been answered
Comment 4 sudo0272 2018-04-19 08:47:45 UTC
Nimf works without any bugs on many other editors like kate, clion, visual studio code and even on wine notepad.
Only on Libreoffice, it gives error.
Comment 5 DaeHyun Sung 2018-05-27 09:05:13 UTC

It can't resolve it and It's not Open Source project. It looks like closed and his-owned arbitrary project.nimf developer(Hodong Kim) require money to resolve the hangul last-letter bug on LibreOffice. 

개발 및 유지 보수는 유료로 제공됩니다. #104
("Development and maintain the nimf project require money",  Translated in English)
Link: https://github.com/cogniti/nimf/issues/104


As a Result, It cannot resolve the problem. If It resolve the problem, Anyone have to give money to the nimf developer.


Today, He closed and made read-only Github Issue page.
( This repository has been archived by the owner. It is now read-only. )
https://github.com/cogniti/nimf

It can't resolve it and I think that It's not Open Source project. It looks like closed and his-owned arbitrary project.

Maybe If We should pay to him for the nimf project's error fix, he would fix it.
Comment 6 cogniti@gmail.com 2018-08-23 15:52:11 UTC
I am a nimf developer.
LibreOffice does not reset input method when mouse is clicked.
This bug is not a nimf bug.
Please don't blame me.
Comment 7 cogniti@gmail.com 2018-08-24 17:05:35 UTC
To DaeHyun Sung
Nimf is open source software under the LGPL.
I have no obligation to resolve the LibreOffice bug.
Even if I do not resolve the LibreOffice bug, do not distribute false information.
I want you to obey the law no matter how bad you feel.
I'm sorry to bother LibreOffice developers.
Comment 8 cogniti@gmail.com 2018-09-03 22:17:33 UTC
I have no time to compile and test it.

hodong@debian:~/Downloads/libreoffice-5.2.7.2$ git diff
diff --git a/vcl/unx/generic/app/i18n_ic.cxx b/vcl/unx/generic/app/i18n_ic.cxx
index a67e589..fedf1de 100644
--- a/vcl/unx/generic/app/i18n_ic.cxx
+++ b/vcl/unx/generic/app/i18n_ic.cxx
@@ -618,6 +618,17 @@ SalI18N_InputContext::UnsetICFocus( SalFrame* pFrame )
     }
 }

+void
+SalI18N_InputContext::ResetIC()
+{
+    if ( mbUseable && (maContext != nullptr) && maClientData.pFrame )
+    {
+      char *text;
+      text = Xutf8ResetIC( maContext );
+      free (text);
+    }
+}
+
 // multi byte input method only

 void
diff --git a/vcl/unx/generic/window/salframe.cxx b/vcl/unx/generic/window/salframe.cxx
index 061abbf..50326c1 100644
--- a/vcl/unx/generic/window/salframe.cxx
+++ b/vcl/unx/generic/window/salframe.cxx
@@ -2653,6 +2653,7 @@ long X11SalFrame::HandleMouseEvent( XEvent *pEvent )
         }
         else if( pEvent->type == ButtonPress )
         {
+            mpInputContext->ResetIC();
             // see if the user clicks outside all of the floats
             // if yes release the grab
             bool bInside = false;
Comment 9 Xisco Faulí 2018-11-26 16:50:55 UTC
Closing as RESOLVED NOTABUG according to comment 5