[linux/aura] Supports IBus in async mode.

ibus-gtk in async mode processes key events asynchronously and sometimes pushes key events back to the GDK event queue.  So we need to pull those pushed-back GDK events from the queue in order to support ibus-gtk in async mode.

This CL pulls GDK events from the GDK event queue and translate them into X events and puts them back to the X event queue, so as if ibus-gtk puts those key events back to X event queue instead of GDK event queue.

The reason that we'd like to support ibus-gtk in async mode is that ibus-hangul doesn't work well with ibus-gtk sync mode.  See Issue 354495 for details.

BUG=354495
TEST=Done manualy.

Review URL: https://codereview.chromium.org/224723008

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262352 0039d316-1c4b-4281-b951-d872f2087c98
7 files changed