Bug 566209 - If turn off Korean engine, preedit character disappears.
Summary: If turn off Korean engine, preedit character disappears.
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: ibus
Version: rawhide
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
Assignee: Peng Huang
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-02-17 15:46 UTC by sangu
Modified: 2010-04-09 04:27 UTC (History)
4 users (show)

Fixed In Version: ibus-hangul-1.3.0.20100329-1.fc13
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-04-09 04:27:25 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description sangu 2010-02-17 15:46:33 UTC
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-20 04:01:34 UTC
Sorry. It is not a bug.

Comment 2 fujiwara 2010-03-16 04:49:05 UTC
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 08:09:53 UTC
Fixed in ibus-hangul-1.3.0.20100329

Comment 5 Fedora Update System 2010-04-07 08:10:42 UTC
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-08 01:46:38 UTC
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-08 02:04:19 UTC
Did you restart your desktop after upgrade?

Comment 8 sangu 2010-04-08 03:23:56 UTC
(In reply to comment #7)
> Did you restart your desktop after upgrade?    
Yes, restart and rebooting again.

Comment 9 fujiwara 2010-04-08 04:09:42 UTC
(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 05:36:37 UTC
(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 06:03:00 UTC
(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 06:05:16 UTC
(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 07:12:05 UTC
Candidate patch is here:
http://github.com/fujiwarat/ibus/commit/567c9949788727ff2e44b4564b2e535eaf8e0ba2

Comment 14 fujiwara 2010-04-08 07:22:05 UTC
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 04:27:21 UTC
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.