Status: New
Owner: ----
Labels: Type-Defect Priority-Medium

New issue 1162 by anergy.25110321: ibus emits GdkEventKey.state with unused bits.
http://code.google.com/p/ibus/issues/detail?id=1162

What version of the product are you using? On what operating system?
OS (Linux distributions, UNIX or ...): Linux
Architecture (i386, x86_64):x86_64
IBus version:1.3.8 or later
Input method name and version:ibus-anthy 1.2.5
Python version:2.7.1
dbus version:1.4.0
dbus-python version:0.83
gtk version (if bug is about gtk applications):2.22.1
qt version (if bug is about qt applications):

What steps will reproduce the problem?
1.Running vimprobable:http://www.vimprobable.org/ with running ibus.
  $ ibus-daemon --xim &
  $ vimprobable
2.Open certain website. For default, vimprobable opens its website.
3.Press 'j' key for example.

What is the expected output? What do you see instead?
'j' key is assigned for scrolling down the viewing webpage.
But it does not respond at all.

Please provide any additional information below.
I tried vimprobable without ibus, which works well.
I also tried vimprobable with another input-method(uim), which works well.
I tried another version of ibus, 1.3.7, which works well.
I modified vimprobable code to output keyboard event, and which said that GdkEventKey.state has a bit 1<<25, which is defined as unused:http://library.gnome.org/devel/gdk/stable/gdk-Windows.html#GdkModifierType Moreover, vimprobable does not care of 25bit is used or not(it doesn't mask 25bit of GdkEventKey.state) but uses state for key assignment definition. So I searched ibus codes for giving keyevent with 1<<25 state and found src/ibusinputcontext.c seems to do it (with the great help of Mr.Fujiwara on IRC. Thanks.) because of not re-process key events which has already handled by ibus. With the both of condition (ibus giving key event with unused bits & gtk application using key event without mask for unused bits), this issue will occur.

--
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

回复