Bug 744667 - ibus 1.4: languagebar disappears with "show language bar when active"
Summary: ibus 1.4: languagebar disappears with "show language bar when active"
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: ibus-anthy
Version: 15
Hardware: i686
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: fujiwara
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 750432 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-10-10 05:37 UTC by nomnex
Modified: 2011-11-15 01:52 UTC (History)
5 users (show)

Fixed In Version: ibus-1.4.0-8.fc15
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-11-15 01:52:09 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
input method name is greyed out (156.61 KB, image/png)
2011-10-10 07:41 UTC, nomnex
no flags Details
ibus verbose mode (8.31 KB, text/plain)
2011-10-16 03:03 UTC, nomnex
no flags Details
original panel.py (34.38 KB, text/x-python)
2011-10-16 03:04 UTC, nomnex
no flags Details
modified panel.py for testing purpose (1.32 KB, text/x-python)
2011-10-16 03:10 UTC, nomnex
no flags Details
ibus verbose command ran on a new user account (mh) (7.88 KB, application/octet-stream)
2011-10-18 14:54 UTC, nomnex
no flags Details
new probile .gconf/desktop/ibus/ (43.22 KB, image/png)
2011-10-22 14:20 UTC, nomnex
no flags Details
default profile .gconf/desktop/ibus/ (49.33 KB, image/png)
2011-10-22 14:20 UTC, nomnex
no flags Details

Description nomnex 2011-10-10 05:37:15 UTC
Description of problem:

since the update of anthy 1.4 in the stable Fedora repo, the language bar does not show up anymore on a LXDE F-Spin when I switch to Japanese input

Version-Release number of selected component (if applicable):

Fedora 15 LXDE Spin
ibus 1.4.0
Japanese-anthy

How reproducible:

always

Steps to Reproduce:
1. default setting: ibus preferences: show language bar: when active
2. switch to Japanese input
3.
  
Actual results:

no language bar

Expected results:

up to 1.3.999 the language bar was pooping-up anytime I switched to Japanese input

Additional info:

Workaround: change preferences to "When active" to "always" display the language bar.

Comment 1 nomnex 2011-10-10 07:41:11 UTC
Created attachment 527174 [details]
input method name is greyed out

Additional info:

ibus preferences:

- show language panel "always" (workaround to have the language bar displayed)
- show the input method name on the language bar

The "input method name" is now grayed out.

Comment 2 fujiwara 2011-10-12 09:51:23 UTC
(In reply to comment #1)
> The "input method name" is now grayed out.

It means focus_in event is not called.

Are you able to look at the same problem with gtk applications likes gedit?


Are you able to see any errors with verbose mode?
1. Right click on ibus panel icon and choose 'Quit'.
2. Run 'ibus-daemon --xim --verbose'

Are you able to modify the /usr/share/ibus/ui/gtk/panel.py below and run ibus panel directly?

--- /usr/share/ibus/ui/gtk/panel.py.orig
+++ /usr/share/ibus/ui/gtk/panel.py
@@ -320,9 +320,11 @@ class Panel(ibus.PanelBase):
                 self.__focus_ic.enable()
 
     def focus_in(self, ic):
+        print "test1"
         self.reset()
         self.__focus_ic = ibus.InputContext(self.__bus, ic)
         enabled = self.__focus_ic.is_enabled()
+        print "test2"
 
         use_bridge_hotkey = self.__use_bridge_hotkey()
         self.__set_default_layout_engine(use_bridge_hotkey)
@@ -357,6 +359,7 @@ class Panel(ibus.PanelBase):
                 self.__set_im_name(None)
                 if self.__bus.get_use_sys_layout():
                     self.__xkblayout.set_layout()
+        print "test3"
         self.__language_bar.focus_in()
 
     def focus_out(self, ic):
@@ -373,6 +376,7 @@ class Panel(ibus.PanelBase):
         if not self.__focus_ic:
             return
 
+        print "test4"
         enabled = self.__focus_ic.is_enabled()
 
         if self.__use_bridge_hotkey():
@@ -388,6 +392,7 @@ class Panel(ibus.PanelBase):
             else:
                 self.__language_bar.set_enabled(False)
         else:
+            print "test5", enabled
             self.__language_bar.set_enabled(enabled)
 
         if enabled == False:


% ps -ef | grep ibus/ui
account 16077 16031  /usr/bin/python /usr/share/ibus/ui/gtk/main.py
% kill 16077
% env IBUS_PREFIX=/usr python /usr/share/ibus/ui/gtk/main.py

Then when you focus in a GTK text application, I expect "test1", "test2", "test3" are shown.
And when you type Control + Space, I expect "test4" and "test5" are shown.

Comment 3 nomnex 2011-10-16 03:01:38 UTC
(In reply to comment #2)
> (In reply to comment #1)
> > The "input method name" is now grayed out.
> 
> It means focus_in event is not called.

okay

> Are you able to look at the same problem with gtk applications likes gedit?

yes, the same problem remains no matter the application (default text editor in lxde is leafpad).

> Are you able to see any errors with verbose mode?
> 1. Right click on ibus panel icon and choose 'Quit'.
> 2. Run 'ibus-daemon --xim --verbose'

yes, there is an error. see ibus log attached below

> Are you able to modify the /usr/share/ibus/ui/gtk/panel.py below and run ibus
> panel directly?

I could, but I need more information:

- attached below: the default panel.py & a "panel_modified.py" file (with your lines below). can you confirm the "panel_modified.py" file content is correct? Then, I will install it.

> --- /usr/share/ibus/ui/gtk/panel.py.orig
> +++ /usr/share/ibus/ui/gtk/panel.py
> @@ -320,9 +320,11 @@ class Panel(ibus.PanelBase):
>                  self.__focus_ic.enable()
> 
>      def focus_in(self, ic):
> +        print "test1"
>          self.reset()
>          self.__focus_ic = ibus.InputContext(self.__bus, ic)
>          enabled = self.__focus_ic.is_enabled()
> +        print "test2"
> 
>          use_bridge_hotkey = self.__use_bridge_hotkey()
>          self.__set_default_layout_engine(use_bridge_hotkey)
> @@ -357,6 +359,7 @@ class Panel(ibus.PanelBase):
>                  self.__set_im_name(None)
>                  if self.__bus.get_use_sys_layout():
>                      self.__xkblayout.set_layout()
> +        print "test3"
>          self.__language_bar.focus_in()
> 
>      def focus_out(self, ic):
> @@ -373,6 +376,7 @@ class Panel(ibus.PanelBase):
>          if not self.__focus_ic:
>              return
> 
> +        print "test4"
>          enabled = self.__focus_ic.is_enabled()
> 
>          if self.__use_bridge_hotkey():
> @@ -388,6 +392,7 @@ class Panel(ibus.PanelBase):
>              else:
>                  self.__language_bar.set_enabled(False)
>          else:
> +            print "test5", enabled
>              self.__language_bar.set_enabled(enabled)
> 
>          if enabled == False:
> 
> 
> % ps -ef | grep ibus/ui
> account 16077 16031  /usr/bin/python /usr/share/ibus/ui/gtk/main.py
> % kill 16077
> % env IBUS_PREFIX=/usr python /usr/share/ibus/ui/gtk/main.py

> Then when you focus in a GTK text application, I expect "test1", "test2",
> "test3" are shown.
> And when you type Control + Space, I expect "test4" and "test5" are shown.

After I installed the modified panel.py:

- do I need to log-off?
- can I start ibus normally (from the menu) or do I need to launch it from a terminal?

Thank you.

Additional info:

I installed ibus 1.400 on the other notebook running LXDE and I can reproduce the same error.

I apologize for the delay to answer the bug reports, but I study and work with the PC and it often is very busy. Thank you for your understanding.

Comment 4 nomnex 2011-10-16 03:03:34 UTC
Created attachment 528358 [details]
ibus verbose mode

error when running command: ibus-daemon --xim --verbose

Comment 5 nomnex 2011-10-16 03:04:35 UTC
Created attachment 528359 [details]
original panel.py

cp of the default panel.py file

Comment 6 nomnex 2011-10-16 03:10:27 UTC
Created attachment 528360 [details]
modified panel.py for testing purpose

modified panel.py with your lines of code.

I am unsure if I copied and pasted all you lines correctly? Thank you to let me know if I did it wrong.

after reading you answer, I will test and report back.

Comment 7 fujiwara 2011-10-17 07:21:15 UTC
(In reply to comment #3)

> > Are you able to see any errors with verbose mode?
> > 1. Right click on ibus panel icon and choose 'Quit'.
> > 2. Run 'ibus-daemon --xim --verbose'
> 
> yes, there is an error. see ibus log attached below

Your gconf db has the wrong data. I don't know why the data is saved.
Please try a new user account instead of the current user one (with useradd command).
Then I think the error won't be shown.

Comment 8 nomnex 2011-10-18 14:53:17 UTC
(In reply to comment #7)
 
> Your gconf db has the wrong data. I don't know why the data is saved.
> Please try a new user account instead of the current user one (with useradd
> command).
> Then I think the error won't be shown.

I was perplex on this one, since the same error shows on 2 different computers after upgrading to ibus 1.4.

Nevertheless, I have created a new user on my current machine, with a new /home dir. When I log into the new user account, the same issue remains: Show language panel "when active" is still broken.

I enclose the output of the command 'ibus-daemon --xim --verbose' on the new account (user name 'mh' vs. previous 'mt') it looks the same as before.

Comment 9 nomnex 2011-10-18 14:54:11 UTC
Created attachment 528828 [details]
ibus verbose command ran on a new user account (mh)

Comment 10 fujiwara 2011-10-19 01:56:07 UTC
(In reply to comment #9)
> Created attachment 528828 [details]
> ibus verbose command ran on a new user account (mh)

Hmm, very strange for me. Did you use the latest ibus-anthy?

# yum install ibus-anthy
% rpm -q ibus-anthy
ibus-anthy-1.2.6-3.fc15

I expect any new users don't have the directory of $HOME/.gconf/desktop/ibus/engine/anthy . Could you check it?

Thanks.

Comment 11 nomnex 2011-10-22 14:18:43 UTC
(In reply to comment #10) 
> Hmm, very strange for me. Did you use the latest ibus-anthy?
> 
> # yum install ibus-anthy
> % rpm -q ibus-anthy
> ibus-anthy-1.2.6-3.fc15

hello. yes, already:
Package ibus-anthy-1.2.6-3.fc15.i686 already installed and latest version
Nothing to do

> I expect any new users don't have the directory of
> $HOME/.gconf/desktop/ibus/engine/anthy . Could you check it?

I enclosed 2 print-screens of the default & new profile. it looks like neither the default neither the new profile has a $HOME/.gconf/desktop/ibus/engine/anthy. I also check on the other notebook running lxde, there is no ".gconf/desktop/ibus/engine/anthy".

Comment 12 nomnex 2011-10-22 14:20:13 UTC
Created attachment 529619 [details]
new probile .gconf/desktop/ibus/

Comment 13 nomnex 2011-10-22 14:20:43 UTC
Created attachment 529621 [details]
default profile .gconf/desktop/ibus/

Comment 14 fujiwara 2011-10-24 04:00:39 UTC
(In reply to comment #11)
> hello. yes, already:
> Package ibus-anthy-1.2.6-3.fc15.i686 already installed and latest version
> Nothing to do

Sorry, I forgot the warning issue.

(In reply to comment #9)
> Created attachment 528828 [details]
> ibus verbose command ran on a new user account (mh)

I checked the file and the warning is no harm.

(In reply to comment #6)
> Created attachment 528360 [details]
> modified panel.py for testing purpose
> 
> modified panel.py with your lines of code.

The file is not correct.
Check the comment #2.

(In reply to comment #2)
> --- /usr/share/ibus/ui/gtk/panel.py.orig
> +++ /usr/share/ibus/ui/gtk/panel.py
> @@ -320,9 +320,11 @@ class Panel(ibus.PanelBase):
>                  self.__focus_ic.enable()
> 
>      def focus_in(self, ic):
> +        print "test1"
>          self.reset()
>          self.__focus_ic = ibus.InputContext(self.__bus, ic)
>          enabled = self.__focus_ic.is_enabled()
> +        print "test2"
> 
>          use_bridge_hotkey = self.__use_bridge_hotkey()
>          self.__set_default_layout_engine(use_bridge_hotkey)

This means to modify /usr/share/ibus/ui/gtk/panel.py and the modification is around line 320th + 11.
The '+' mark is to add the line in the original panel.py.
I explained to add two lines; 'print "test1"' and 'print "test2"' above.
After you would modify the panel.py, you could confirm your change with diff command:

# cp /usr/share/ibus/ui/gtk/panel.py /usr/share/ibus/ui/gtk/panel.py.orig
# vi /usr/share/ibus/ui/gtk/panel.py
# diff -urNp /usr/share/ibus/ui/gtk/panel.py.orig \
  /usr/share/ibus/ui/gtk/panel.py


(In reply to comment #2)
> % ps -ef | grep ibus/ui
> account 16077 16031  /usr/bin/python /usr/share/ibus/ui/gtk/main.py
> % kill 16077
> % env IBUS_PREFIX=/usr python /usr/share/ibus/ui/gtk/main.py

I explained how to run the ibus panel icon by manual here after you modify the panel.py.

Thanks.

Comment 15 nomnex 2011-10-26 00:28:34 UTC
> This means to modify /usr/share/ibus/ui/gtk/panel.py and the modification is
> around line 320th + 11.
> The '+' mark is to add the line in the original panel.py.
> I explained to add two lines; 'print "test1"' and 'print "test2"' above.
> After you would modify the panel.py, you could confirm your change with diff
> command:

1) Thank you for your explanation (and teaching me something new). It makes sens now, and I could modify panel.py with the added lines 'print"test1"' up to 'print"test5", enabled' as in comment #2

> (In reply to comment #2)
> > % ps -ef | grep ibus/ui
> > account 16077 16031  /usr/bin/python /usr/share/ibus/ui/gtk/main.py
> > % kill 16077
> > % env IBUS_PREFIX=/usr python /usr/share/ibus/ui/gtk/main.py
> 
> I explained how to run the ibus panel icon by manual here after you modify the
> panel.py.

2) I am sorry, I don't know the sell very well (is % equivalent to # (root)):

How do I pass the first commands, I try several times?

command1:
# ps -ef | grep ibus/ui

or

# ps -ef | grep ibus/ui
account 16077 16031  /usr/bin/python /usr/share/ibus/ui/gtk/main.py

both returns the same output:

[root@nh28d gtk]# ps -ef | grep ibus/ui
mt        1624  1604  0 07:47 ?        00:00:34 /usr/bin/python /usr/share/ibus/ui/gtk/main.py
root      3054  2487  0 09:11 pts/0    00:00:00 grep --color=auto ibus/ui

command1 (on a single line):
# ps -ef | grep ibus/ui account 16077 16031  /usr/bin/python /usr/share/ibus/ui/gtk/main.py

returns:

[root@nh28d gtk]# ps -ef | grep ibus/ui account 16077 16031  /usr/bin/python /usr/share/ibus/ui/gtk/main.py
grep: account: No such file or directory
grep: 16077: No such file or directory
grep: 16031: No such file or directory
[root@nh28d gtk]# 

After the first command, do I pass directly the 2 other commands:

# kill 16077
# env IBUS_PREFIX=/usr python /usr/share/ibus/ui/gtk/main.py

3) I assume, the output will be shown in the terminal windows when I focus on a GTK application, or when I use a shortcut Ctrl+Space. Do I copy and past the output in the terminal window, or do I only confirm comment #2 (Then when you focus in a GTK text application, I expect "test1", "test2", "test3" are shown. And when you type Control + Space, I expect "test4" and "test5" are shown.)?

Thank you.

Comment 16 fujiwara 2011-10-27 00:49:01 UTC
(In reply to comment #15)
> 2) I am sorry, I don't know the sell very well (is % equivalent to # (root)):

I expect % is the terminal prompt with the current *user* account but not root.

> [root@nh28d gtk]# ps -ef | grep ibus/ui
> mt        1624  1604  0 07:47 ?        00:00:34 /usr/bin/python
> /usr/share/ibus/ui/gtk/main.py
> root      3054  2487  0 09:11 pts/0    00:00:00 grep --color=auto ibus/ui

This is right. Kill the process id in the next step and run the ibus panel icon by manual.

> # kill 16077
> # env IBUS_PREFIX=/usr python /usr/share/ibus/ui/gtk/main.py

No, it should be executed by the current user account.

% kill 1624
% env IBUS_PREFIX=/usr python /usr/share/ibus/ui/gtk/main.py

> 
> 3) I assume, the output will be shown in the terminal windows when I focus on a
> GTK application, or when I use a shortcut Ctrl+Space. Do I copy and past the
> output in the terminal window, or do I only confirm comment #2 (Then when you
> focus in a GTK text application, I expect "test1", "test2", "test3" are shown.
> And when you type Control + Space, I expect "test4" and "test5" are shown.)?

Yes, the output will be shown in the terminal and you could check all "test1" - "test5" are shown. If some of the debug strings are not shown, please attach it in this bug report.

Comment 17 nomnex 2011-10-28 08:38:58 UTC
Thank you for the explanations, and the patience. I could finally complete the steps

[mt@nh28d ~]$ ps -ef | grep ibus/ui
mt       10582 10279  3 17:35 ?        00:00:01 /usr/bin/python /usr/share/ibus/ui/gtk/main.py
mt       10621  9736  0 17:35 pts/0    00:00:00 grep --color=auto ibus/ui
[mt@nh28d ~]$ kill 10582
[mt@nh28d ~]$ env IBUS_PREFIX=/usr python /usr/share/ibus/ui/gtk/main.py
/usr/share/ibus/ui/gtk/panel.py:116: Warning: g_object_notify: object class `GtkStatusIcon' has no property named `name'
  self.__status_icon.set_name('ibus-ui-gtk')
test1
test2
test1
test2
test4
test5 1
test4
test5 1
test4
test5 1
test4
test4
test1
test2
test4
test5 0
test4
test5 0
test1
test2

Is that correct?

Comment 18 fujiwara 2011-10-28 10:14:30 UTC
(In reply to comment #17)
> [mt@nh28d ~]$ env IBUS_PREFIX=/usr python /usr/share/ibus/ui/gtk/main.py
> /usr/share/ibus/ui/gtk/panel.py:116: Warning: g_object_notify: object class
> `GtkStatusIcon' has no property named `name'
>   self.__status_icon.set_name('ibus-ui-gtk')
> test1
> test2
> test1
> test2
> test4
> test5 1
> test4
> test5 1
> test4
> test5 1
> test4
> test4
> test1
> test2
> test4
> test5 0
> test4
> test5 0
> test1
> test2
> 
> Is that correct?

Yes, that's the expected result.
So I think, when you enable an input method engine with Control + Space key, 
the 'test5 1' is shown and the languagebar is shown.
Do you see the languagebar GUI?

Comment 19 nomnex 2011-10-28 14:04:22 UTC
hello, I got it now. So no. There is no language bar GUI. I did the test again

[mt@nh28d ~]$ ps -ef | grep ibus/ui
mt        3807  3796  1 22:58 ?        00:00:01 /usr/bin/python /usr/share/ibus/ui/gtk/main.py
mt        3936  3916  0 22:59 pts/0    00:00:00 grep --color=auto ibus/ui
[mt@nh28d ~]$ kill 3807
[mt@nh28d ~]$ env IBUS_PREFIX=/usr python /usr/share/ibus/ui/gtk/main.py
/usr/share/ibus/ui/gtk/panel.py:116: Warning: g_object_notify: object class `GtkStatusIcon' has no property named `name'
  self.__status_icon.set_name('ibus-ui-gtk')
test1
test2
test1
test2
test1
test2
test1
test2
test1
test2
test1
test2
test4
test5 1
test4
test5 1
test4
test5 1
test4
test5 0
test4
test5 0
test1
test2

Control + Space behaves the same manner. It switches the input method to JP on-off, but the language bar does not display when it is on.

If it is relevant, ibut is set to "show language panel: when active"

Comment 20 fujiwara 2011-11-01 10:45:18 UTC
(In reply to comment #19)
> hello, I got it now. So no. There is no language bar GUI. I did the test again

Thanks for the test.
Could you also modify /usr/share/ibus/ui/gtk/languagebar.py by manual and run the ibus panel by manual again?

# cp /usr/share/ibus/ui/gtk/languagebar.py /usr/share/ibus/ui/gtk/languagebar.py.orig

--- /usr/share/ibus/ui/gtk/languagebar.py.orig	2011-10-12 18:27:37.982094448 +0900
+++ /usr/share/ibus/ui/gtk/languagebar.py	2011-11-01 19:37:21.500605674 +0900
@@ -219,6 +219,9 @@ class LanguageBar(gtk.Toolbar):
 
     def set_enabled(self, enabled):
         self.__enabled = enabled
+        print "test8 languagebar.set_enabled", self.__enabled
+        print "test8 languagebar.set_enabled", self.__has_focus
+        print "test8 languagebar.set_enabled", self.__show
         if self.__enabled:
             self.__about_button.show()
             self.__set_opacity(1.0)
@@ -324,6 +327,7 @@ class LanguageBar(gtk.Toolbar):
     def focus_in(self):
         self.__has_focus = True
         self.__im_menu.set_sensitive(True)
+        print "test6 languagebar.focus_in", self.__show, self.__enabled
         if (self.__show == 1 and self.__enabled) or self.__show == 2:
             self.show_all()
         else:
@@ -332,6 +336,7 @@ class LanguageBar(gtk.Toolbar):
     def focus_out(self):
         self.__has_focus = False
         self.__im_menu.set_sensitive(False)
+        print "test7 languagebar.focus_out", self.__show
         if self.__show == 2:
             self.show_all()
         else:


I'd expect the following message is shown when IME is enabled:
test4
test5 1
test8 languagebar.set_enabled 1
test8 languagebar.set_enabled True
test8 languagebar.set_enabled 1

I'd expect the following message is shown when IME is disabled:
test4
test5 0
test8 languagebar.set_enabled 0
test8 languagebar.set_enabled True
test8 languagebar.set_enabled 1

Thanks.

Comment 21 nomnex 2011-11-02 02:24:08 UTC
Hello, I can modify the file with more confidence and answer you faster. Can you explain me what is the second digit after the line number:

eg: @@ -219,6 +219,9 @@ class LanguageBar(gtk.Toolbar):
'-219' is the line number on the text file. What is ',9'. Thank you.

Here is the output command, when I Ctrl+Space, and switch input in the text editor window.

[mt@nh28d ~]$ ps -ef | grep ibus/ui
mt        6826  6778  4 11:18 ?        00:00:01 /usr/bin/python /usr/share/ibus/ui/gtk/main.py
mt        6994  6955  0 11:18 pts/0    00:00:00 grep --color=auto ibus/ui
[mt@nh28d ~]$ kill 6826
[mt@nh28d ~]$ env IBUS_PREFIX=/usr python /usr/share/ibus/ui/gtk/main.py
test7 languagebar.focus_out 0
test7 languagebar.focus_out 1
test1
test2
test8 languagebar.set_enabled False
test8 languagebar.set_enabled False
test8 languagebar.set_enabled 1
test7 languagebar.focus_out 1
test1
test2
test4
test5 1
test8 languagebar.set_enabled 1
test8 languagebar.set_enabled False
test8 languagebar.set_enabled 1
test4
test5 1
test8 languagebar.set_enabled 1
test8 languagebar.set_enabled False
test8 languagebar.set_enabled 1
test4
test5 1
test8 languagebar.set_enabled 1
test8 languagebar.set_enabled False
test8 languagebar.set_enabled 1
test4
test5 1
test8 languagebar.set_enabled 1
test8 languagebar.set_enabled False
test8 languagebar.set_enabled 1
test4
test5 1
test8 languagebar.set_enabled 1
test8 languagebar.set_enabled False
test8 languagebar.set_enabled 1
test4
test5 1
test8 languagebar.set_enabled 1
test8 languagebar.set_enabled False
test8 languagebar.set_enabled 1
test4
test5 0
test8 languagebar.set_enabled 0
test8 languagebar.set_enabled False
test8 languagebar.set_enabled 1
test4
test5 0
test8 languagebar.set_enabled 0
test8 languagebar.set_enabled False
test8 languagebar.set_enabled 1
test4
test8 languagebar.set_enabled False
test8 languagebar.set_enabled False
test8 languagebar.set_enabled 1
test7 languagebar.focus_out 1
test1
test2

Comment 22 fujiwara 2011-11-02 06:40:23 UTC
(In reply to comment #21)
> eg: @@ -219,6 +219,9 @@ class LanguageBar(gtk.Toolbar):
> '-219' is the line number on the text file. What is ',9'. Thank you.

The original code has 6 lines and the new code has 9 lines so 9 - 6 == 3 lines are added in that block.
You could check the differences:
% diff -urNp /usr/share/ibus/ui/gtk/languagebar.py.orig /usr/share/ibus/ui/gtk/languagebar.py

> test1
> test2
> test8 languagebar.set_enabled False
> test8 languagebar.set_enabled False
> test8 languagebar.set_enabled 1
> test7 languagebar.focus_out 1
> test1
> test2
> test4
> test5 1
> test8 languagebar.set_enabled 1
> test8 languagebar.set_enabled False
> test8 languagebar.set_enabled 1
> test4
> test5 1

It's strange. 'test3' and 'test6 ...' are not called.
Could you add some other lines between 'test2' and 'test3' and check which line is failed.

--- /usr/share/ibus/ui/gtk/panel.py.orig
+++ /usr/share/ibus/ui/gtk/panel.py
@@ -322,12 +322,17 @@ class Panel(ibus.PanelBase):
                 self.__focus_ic.enable()
 
     def focus_in(self, ic):
+        print "test1"
         self.reset()
         self.__focus_ic = ibus.InputContext(self.__bus, ic)
         enabled = self.__focus_ic.is_enabled()
+        print "test2"
 
+        print "test2-1", enabled
         use_bridge_hotkey = self.__use_bridge_hotkey()
+        print "test2-2", use_bridge_hotkey
         self.__set_default_layout_engine(use_bridge_hotkey)
+        print "test2-3"
         if use_bridge_hotkey:
             if self.__show != 1:
                 self.__language_bar.set_enabled(enabled)


I'd expect the following output when an application get the input focus:
test1
test2
test2-1 0
test2-2 False
test2-3
test8 languagebar.set_enabled 0
test8 languagebar.set_enabled False
test8 languagebar.set_enabled 1
test3
test6 languagebar.focus_in 1 0

Comment 23 fujiwara 2011-11-02 06:56:06 UTC
OK, probably now I understood your problem.
I think your problem is fixed in the latest ibus.

# yum install --enablerepo=updates-testing ibus
% rpm -q ibus
ibus-1.4.0-8.fc15.x86_64

Thanks.

Comment 24 nomnex 2011-11-03 23:00:32 UTC
(In reply to comment #23)
> OK, probably now I understood your problem.
> I think your problem is fixed in the latest ibus.
> 
> # yum install --enablerepo=updates-testing ibus
> % rpm -q ibus
> ibus-1.4.0-8.fc15.x86_64

I used to pass this command syntax to test a software (without enabling the testing repository permanently):

su -c 'yum update --enablerepo=updates-testing ibus-1.3.99.20110419-9.fc15'

It doesn't work with 1.4.0-8:

[root@nh28d ~]# su -c 'yum update --enablerepo=updates-testing ibus-1.4.0-8.fc15.x86_64'
Loaded plugins: langpacks, presto, refresh-packagekit
Setting up Update Process
No Match for argument: ibus-1.4.0-8.fc15.x86_64
No package ibus-1.4.0-8.fc15.x86_64 available.
No Packages marked for Update
[root@nh28d ~]# exit

Can you tell me if your command below install only 1.4.0-8 testing update (or the ibus testing repo, incl. next ibus testing packages)? I use the PC to study. I gladly test a package software, but I don't install testing repos, in the even a testing-update breaks something:

> # yum install --enablerepo=updates-testing ibus
> % rpm -q ibus
> ibus-1.4.0-8.fc15.x86_64

Thanks.

Comment 25 fujiwara 2011-11-04 01:28:39 UTC
(In reply to comment #24)
> [root@nh28d ~]# su -c 'yum update --enablerepo=updates-testing
> ibus-1.4.0-8.fc15.x86_64'
> Loaded plugins: langpacks, presto, refresh-packagekit
> Setting up Update Process
> No Match for argument: ibus-1.4.0-8.fc15.x86_64
> No package ibus-1.4.0-8.fc15.x86_64 available.
> No Packages marked for Update

Yesterday I replaced 1.4.0-8 with 1.4.0-9 with another bug fix. So please try 1.4.0-9.

# yum install --enablerepo=updates-testing ibus
% rpm -q ibus
ibus-1.4.0-9.fc15.x86_64

Comment 26 nomnex 2011-11-04 04:25:26 UTC
[mt@nh28d ~]$ rpm -q ibus
ibus-1.4.0-9.fc15.i686

Thank you! The language panel is working great again.

Comment 27 fujiwara 2011-11-04 05:38:30 UTC
Thanks for your test.
Your debug message led me to the root cause.

Comment 28 fujiwara 2011-11-04 05:41:50 UTC
*** Bug 750432 has been marked as a duplicate of this bug. ***

Comment 29 fujiwara 2011-11-15 01:52:09 UTC
ibus-1.4.0-10.fc15 has been pushed to the Fedora 15 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.