Comment #3 on issue 1333 by [email protected]: Cannot trigger ibus panel
when switch back from a "No input Window"
http://code.google.com/p/ibus/issues/detail?id=1333
This also happened randomly when switching from the main window of stardict
to
an LXTerminal.
I used the following patch to watch how did the panel.focus_in/focus_out
changes.
The right behavior (From an LXTerminal to another LXTerminal):
24 Out Focus! /org/freedesktop/IBus/InputContext_24
24 In Focus! /org/freedesktop/IBus/InputContext_24 <--- [1]
24 Out Focus! /org/freedesktop/IBus/InputContext_24
26 In Focus! /org/freedesktop/IBus/InputContext_26
* At [1], there's a redundant focus in/out pair from the 1st window before
the
2nd window get the focus_in called.
The wrong behavior (From stardict main window to an LXTerminal):
14 Out Focus! /org/freedesktop/IBus/InputContext_14
26 In Focus! /org/freedesktop/IBus/InputContext_26
26 Out Focus! /org/freedesktop/IBus/InputContext_26 <--- [2]
14 In Focus! /org/freedesktop/IBus/InputContext_14
14 Out Focus! /org/freedesktop/IBus/InputContext_14
* As can be see, the redundant focus happened AFTER 2nd window got the
focus_in
call. Therefore, since the 1st window got the redundant focus_in after 2nd
window focused in, the 2nd window got a focus_out at [2].
Now, nobody get focus there, i.e. panel.__focus_ic == None, the panel
won't
show up at ctrl-space.
It seems the panel.focus_in/focus_out are called through dbus, there could
be
some racing condition happening on the ibus engine side.
The ibus environments are:
XMODIFIERS=@im=ibus
GTK_IM_MODULE=ibus
Attachments:
watch-focus.patch 816 bytes
--
You received this message because you are subscribed to the Google
Groups "ibus-devel" group.
iBus project web page: http://code.google.com/p/ibus/
iBus dev group: http://groups.google.com/group/ibus-devel?hl=en