ibus during candidate selection, the up/down arrow keys are broken in xchat. SCIM is fine.
This problem is because xchat filters those key events, and ibus can not receive them. It is better to let xchat does not filter those key events when im is active (The pre-edit text is visible).
How is this not an issue for SCIM, IIIMF and XIM?
For IIIMF & XIM, I am not very sure. Properly, Key events will be sent to XIM server before delivering to GDK library.
But for SCIM, I know the detail. SCIM registers a gtk keyboard snooper to get all key events before events are delivered to widgets. I think it is not a right way. It does not follow gtk im context design. It is just an workaround for those applications.
I think the better solution is fixing it in application, or consider changing the gtk im context's design.
It is an issue for IIIMF, we used to have a patch for that, but it broke XIM. See bug 295331.
As far as I know, the current code works fine for XIM and SCIM.
Yeah. It is because SCIM has a workaround for this problem. But it does not follow gtk im context design. I just went through xchat source code. I did not find easy way to know if im context is active. So I fixed it in ibus im module.
But I will file a new bug on gtk upstream. Maybe they will change design of gtk im context.
Do not close as RAWHIDE if the bug is not actually fixed. Keeping it open for now.