Bug 566209 - If turn off Korean engine, preedit character disappears.
If turn off Korean engine, preedit character disappears.
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: ibus (Show other bugs)
rawhide
All Linux
low Severity medium
: ---
: ---
Assigned To: Peng Huang
Fedora Extras Quality Assurance
: Reopened
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2010-02-17 10:46 EST by sangu
Modified: 2010-04-09 00:27 EDT (History)
4 users (show)

See Also:
Fixed In Version: ibus-hangul-1.3.0.20100329-1.fc13
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2010-04-09 00:27:25 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)

  None (edit)
Description sangu 2010-02-17 10:46:33 EST
Description of problem:
While input Korean or Japanese, if switching input method (English <-> Korea or Japanese), preedit character disappears.

Version-Release number of selected component (if applicable):
1.2.99.20100202-1.fc13

How reproducible:
always

Steps to Reproduce:
1. input Korean or Japanese
2. Switch input method
3.
  
Actual results:
preedit character disappears.

Expected results:
Cursor move to next location. 

Additional info:
ibus-hangul-1.2.0.20100102-1.fc13.x86_64
ibus-anthy-1.2.0.20100115-1.fc13.x86_64
Comment 1 Peng Huang 2010-02-19 23:01:34 EST
Sorry. It is not a bug.
Comment 2 fujiwara 2010-03-16 00:49:05 EDT
Here is a candidate patch.
http://github.com/fujiwarat/ibus/commit/4ecc111a036908dd5e1cf44beabb7c7831ea6056

Korean user asked to commit the preedit string when the engines are switched because Korean users don't distinguish preedit and committed strings.

It might be good to think this problem again.

Previously I thought to send focus out in ibus-hangul's destroy().
But it seems using events in engine side is too late because it seems some of objects are already destroyed or detached so I think this cannot be fixed in the engine side.
Now I think a setting for the focus-out string.

There are two problems.
 - preedit string is not committed for ibus-hangul when the engines are changed.
 - preedit string is committed in another focus when the focus is changed and global input method mode is selected.

Talking off line, an engine might select commit or clear (or keep) so we think adding a new API could be one of ideas, likes ibus_engine_update_preedit_text_with_mode().
Comment 4 Peng Huang 2010-04-07 04:09:53 EDT
Fixed in ibus-hangul-1.3.0.20100329
Comment 5 Fedora Update System 2010-04-07 04:10:42 EDT
ibus-hangul-1.3.0.20100329-1.fc13 has been submitted as an update for Fedora 13.
http://admin.fedoraproject.org/updates/ibus-hangul-1.3.0.20100329-1.fc13
Comment 6 sangu 2010-04-07 21:46:38 EDT
Although updating ibus-hangul-1.3.0.20100329, ibus-1.3.1-1.fc13, this issue doesn't be fixed.
Comment 7 Peng Huang 2010-04-07 22:04:19 EDT
Did you restart your desktop after upgrade?
Comment 8 sangu 2010-04-07 23:23:56 EDT
(In reply to comment #7)
> Did you restart your desktop after upgrade?    
Yes, restart and rebooting again.
Comment 9 fujiwara 2010-04-08 00:09:42 EDT
(In reply to comment #6)
> Although updating ibus-hangul-1.3.0.20100329, ibus-1.3.1-1.fc13, this issue
> doesn't be fixed.    

Hmm.., curious. I confirmed the fix.

The new hangul engine uses libibus.so.2.0.0

% ldd /usr/libexec/ibus-engine-hangul
	linux-vdso.so.1 =>  (0x00007fff6e91f000)
	libibus.so.2 => /usr/lib64/libibus.so.2 (0x00000036b3a00000)
% ls -l /usr/lib64/libibus.so.2
lrwxrwxrwx 1 root root 16 2010-04-07 17:03 /usr/lib64/libibus.so.2 -> libibus.so.2.0.0

My test case:
1. Type 'a' with ibus-hangul
2. Switch another engine

The Hangul 'a' is committed.
Comment 10 sangu 2010-04-08 01:36:37 EDT
(In reply to comment #9)
> (In reply to comment #6)
> > Although updating ibus-hangul-1.3.0.20100329, ibus-1.3.1-1.fc13, this issue
> > doesn't be fixed.    
> 
> Hmm.., curious. I confirmed the fix.
> 
> The new hangul engine uses libibus.so.2.0.0
> 
> % ldd /usr/libexec/ibus-engine-hangul
>  linux-vdso.so.1 =>  (0x00007fff6e91f000)
>  libibus.so.2 => /usr/lib64/libibus.so.2 (0x00000036b3a00000)
> % ls -l /usr/lib64/libibus.so.2
> lrwxrwxrwx 1 root root 16 2010-04-07 17:03 /usr/lib64/libibus.so.2 ->
> libibus.so.2.0.0
> 
> My test case:
> 1. Type 'a' with ibus-hangul
> 2. Switch another engine
> 
> The Hangul 'a' is committed.    
My test case:
2. Switch another engine (Hangul <-> English )
Using ShortKey (shift + space  key or Hangul Key), this issue happens.
Comment 11 fujiwara 2010-04-08 02:03:00 EDT
(In reply to comment #10)
> My test case:
> 2. Switch another engine (Hangul <-> English )
> Using ShortKey (shift + space  key or Hangul Key), this issue happens.    

OK, it's a different problem. Actually you didn't switch the engines but you turn on/off Korean engine mode. Hmm.., you should provide the test case.
If I used Ctrl + Space, the problem was not happened.

The current workaround is to disable global input method with 'ibus-setup' command.
Comment 12 fujiwara 2010-04-08 02:05:16 EDT
(In reply to comment #11)
> The current workaround is to disable global input method with 'ibus-setup'
> command.    

It's my mistake, I used Ctrl + Space again..
Comment 13 fujiwara 2010-04-08 03:12:05 EDT
Candidate patch is here:
http://github.com/fujiwarat/ibus/commit/567c9949788727ff2e44b4564b2e535eaf8e0ba2
Comment 14 fujiwara 2010-04-08 03:22:05 EDT
I attached the fixed binary for x86_64.
It would be nice if you could verify the fix with the test binary.
http://fujiwara.fedorapeople.org/ibus/ko/ibus-daemon

# mv /usr/bin/ibus-daemon /usr/bin/ibus-daemon.orig
# mv ibus-daemon /usr/bin/.
# chmod 755 /usr/bin/ibus-daemon
Comment 15 Fedora Update System 2010-04-09 00:27:21 EDT
ibus-hangul-1.3.0.20100329-1.fc13 has been pushed to the Fedora 13 stable repository.  If problems still persist, please make note of it in this bug report.

Note You need to log in before you can comment on or make changes to this bug.