Some application may want to integrate with ibus directly, and want to
use async mode for processing key events. So I make
ibus_input_context_process_key_event to be an async function,
and also added ibus_input_context_process_key_event_sync.
Fix problem in introspection of Engine.
BUG=none
TEST=Tested in Ubuntu 10.10
Review URL: http://codereview.appspot.com/4032044
The fake context is removed by mistake in ibus-1.4. It is necessary for Chrome OS.
BUG=none
TEST=manual
Review URL: http://codereview.appspot.com/3574042
1. Do not use poll factory of a component. Sometime, it will cause a dead lock of ibus: ibus-daemon are waiting reply from engine, and engine are also waiting for reply from ibus-daemon.
2. Move some API from IBusComponent to BusComponent, Because of those API is for internal using only
3. Add a fake input context in server side to support switching input method when no context has focus.
4. Remove fake input context in imcontext, because we added the server side fake context
BUG=none
TEST=manual
Review URL: http://codereview.appspot.com/3077042
This change is logically a revert of 7e71514679
The new behavior is:
1) If IBUS_DISABLE_SNOOPER environment variable is set, and the value of the variable is "" (an empty string) or "0" or "false" or "False" or "FALSE", key snooper is enabled.
2) If IBUS_DISABLE_SNOOPER environment variable is set, and the value of the variable is other than the 5 above, e.g. "1", "true", .., key snooper is disabled.
3) If IBUS_DISABLE_SNOOPER environment variable is not set, and ibus-daemon is explicitly configured with --disable-key-snooper, key snooper is disabled.
4) If IBUS_DISABLE_SNOOPER environment variable is not set, and ibus-daemon is not configured with --disable-key-snooper, the GTK_IM_MODULE, im-ibus.so, checks IBUS_NO_SNOOPER_APPS environment variable:
4-a) if IBUS_NO_SNOOPER_APPS environment variable is not set, and the application name matches ".*chrome", key snooper is disabled.
4-b) if IBUS_NO_SNOOPER_APPS environment variable, which should be comma-separated regexps, is set, and one of the regexps matches the application name, key snooper is disabled.
4-c) otherwise, key snooper is enabled.
Please note that when no configure options nor no environment variables are set, key snooper is enabled on all applications except Chrome/Chromium web browsers. For example, key snooper would be enabled on xchat and gedit by default. I believe the new default behavior would satisfy both Linux desktop and Chromium OS requirements.
Test:
- With ibus built without --disable-key-snooper:
yusukes@harapeko:~$ gedit # snoop
yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER= gedit # snoop
yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER=0 gedit # snoop
yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER="0" gedit # snoop
yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER="false" gedit # snoop
yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER="False" gedit # snoop
yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER="FALSE" gedit # snoop
yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER="1" gedit # no-snoop
yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER="true" gedit # no-snoop
yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER="unknownstring" gedit # no-snoop
yusukes@harapeko:~$ IBUS_NO_SNOOPER_APPS=gedit gedit # no-snoop
yusukes@harapeko:~$ IBUS_NO_SNOOPER_APPS='g.*dit' gedit # no-snoop
yusukes@harapeko:~$ IBUS_NO_SNOOPER_APPS='foobar,g.*dit' gedit # no-snoop
yusukes@harapeko:~$ IBUS_NO_SNOOPER_APPS=foobar gedit # snoop
yusukes@harapeko:~$ google-chrome # no-snoop
yusukes@harapeko:~$ IBUS_NO_SNOOPER_APPS=foobar google-chrome # snoop
- With ibus built with --disable-key-snooper:
yusukes@harapeko:~$ gedit # no-snoop
yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER="false" gedit # snoop
yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER="true" gedit # no-snoop
yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER="unknownstring" gedit # no-snoop
yusukes@harapeko:~$ IBUS_NO_SNOOPER_APPS=foobar gedit # no-snoop, because IBUS_NO_SNOOPER_APPS is ignored when --disable-key-snooper is specified.
BUG=http://code.google.com/p/ibus/issues/detail?id=1068
TEST=manually done. see above.
Review URL: http://codereview.appspot.com/2568043
/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
TEST=confirmed that the modelines for vim and emacs both worked.
BUG=none
Review URL: http://codereview.appspot.com/2168042