According to setup/keyboardshortcut.py, "Control" seems to be correct.
BUG=none
TEST=compile ibus with --enable-memconf, start ibus-daemon, start ibus-setup, click "..." button for the "Enable or disable" hotkey, then verify that the "Control" checkbox in the pop-up dialog is checked from the beginning.
Review URL: http://codereview.appspot.com/4017042
This change is similar to 19247aac5a.
The flag can prevent unnecessary communications between ibus-daemon and e.g. engines like this:
$ . ~/.config/ibus/bus/*-unix-0 ; dbus-monitor --address $IBUS_ADDRESS 2>&1 | tee /tmp/ibus.log
...
method call sender=org.freedesktop.DBus -> dest=(null destination) serial=3 path=/org/freedesktop/IBus/Factory; interface=org.freedesktop.IBus.Factory; member=CreateEngine
string "mozc-jp"
method return sender=:1.15 -> dest=org.freedesktop.DBus reply_serial=3
object path "/org/freedesktop/IBus/Engine/1"
method call sender=org.freedesktop.DBus -> dest=(null destination) serial=4 path=/org/freedesktop/IBus/Engine/1; interface=org.freedesktop.DBus.Properties; member=GetAll
string "org.freedesktop.IBus.Engine"
method return sender=:1.15 -> dest=org.freedesktop.DBus reply_serial=4
array [
]
Calling an engine's org.freedesktop.DBus.Properties.GetAll method when the engine is created is unnecessary for ibus-daemon, while it's not harmful though.
BUG=none
TEST=verified using dbus-monitor that ibus-daemon does not call GetAll anymore.
Review URL: http://codereview.appspot.com/4036041
Please note that gcc's warn_unused_result check is enforced on the build environment. Anyway, I believe it's good to check the return value in this case.
BUG=none
TEST=ran emerge-x86-generic ibus.
Review URL: http://codereview.appspot.com/3904044
ibusxml.c: In function 'ibus_xml_parse_file':
ibusxml.c:213: error: 'retval' may be used uninitialized in this function
BUG=none
TEST=ran make CFLAGS="-Wall -O2"
Review URL: http://codereview.appspot.com/3858044
Do the same for ibus_bus_set_global_engine as well. Currently it always returns TRUE regardless of the result of the method call.
BUG=none
TEST=manually
Review URL: http://codereview.appspot.com/3902043
Without the change, bus_ibus_impl_set_default_preload_engines() might erase an existing preload_engines config when --timeout option for ibus-daemon is too short for ibus_config_get() to success.
BUG=none
TEST=manually with 'ibus-daemon --timeout=1'
Review URL: http://codereview.appspot.com/3789046
Probably it's better to call the remove function in bus_ibus_impl_set_trigger just as bus_ibus_impl_set_hotkey already does, so that a wierd error message like 'IBUS-CRITICAL **: ...: file ibushotkey.c: line 381 (ibus_hotkey_profile_add_hotkey): should not be reached' will not be shown.
The fallback hotkey could be registered twice, via bus_ibus_impl_init and _dbus_name_owner_changed_cb, if the --timeout parameter is too small to talk to the configuration daemon, for example.
BUG=none
TEST=ran ibus-daemon with --timeout=1 and verified that the IBUS-CRITICAL message above was not shown.
Review URL: http://codereview.appspot.com/3796044
BUG=none
TEST=manually. removed all engines using ibus-setup and ran ibus-daemon, then press a trigger hot-key.
Review URL: http://codereview.appspot.com/3786047
On 1.3.99, currently the option is just ignored and '-1' (i.e. the default timeout of gdbus which is 25 seconds in glib-2.26.1) is always used. We should fix this since the default, 25 secs, is too long for some platforms like Chromium OS.
BUG=none
TEST=manually
Review URL: http://codereview.appspot.com/3784047
BUG=1175
TEST=checked that Super+space and Hyper+space work as intended with and without the use_sys_layout option enabled.
Review URL: http://codereview.appspot.com/3856041
On ibus-1.3, ibus_config_new returns NULL when ibus-gconf is not started yet, but on 1.4 it returns a valid, non-NULL IBusConfig object. This patch fixes the discrepancy by changing the behavior of ibus_config_new of 1.4.
If we don't return NULL when ibus-gconf does not exist, successive calls e.g. ibus_config_set_value will fail with a cryptic error message like 'IBUS-WARNING **: org.freedesktop.IBus.Config.SetValue: Cannot invoke method; proxy is for a well-known name without an owner and proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag'. I believe returning NULL makes it easier to use the ibusconfig.h APIs.
Please note that this patch is particularly important for Chromium OS. Since ibus_config_new is called shortly after ibus-daemon starts on the OS, ibus_config_new is sometimes called before ibus-memconf starts actually. This change helps the glue between chrome and ibus-daemon to remain clean.
BUG=none
TEST=manually on Chromium OS
Review URL: http://codereview.appspot.com/3784043
Without the flag, on_name_owner_changed() in glib-2.26.x/gio/gdbusproxy.c might invoke a remote method named GetAll in org.freedesktop.DBus.Properties interface, but the method is not implemented in ibus-daemon. Since ibus-daemon ignores the method call, the caller, which is UI thread of Chrome on Chromium OS, will block for 25 seconds (i.e. the default timeout of GDBus) waiting for a reply.
BUG=none
TEST=manually
Review URL: http://codereview.appspot.com/3836042
Without the fix, some key combinations might not trigger a hot-key event.
For example, one of Chrome OS hot-keys, "press Shift, then press Alt, then release Alt", does not work without the fix.
BUG=none
TEST=manually checked using ChromeOS and IBus-1.4
Review URL: http://codereview.appspot.com/3828041
BUG=none
TEST=verified that calling g_object_unref(the_returned_object) does not result in the remote method call.
Review URL: http://codereview.appspot.com/3803041
The following code does not work since the underlying connection for IBus-1.4 is not a sub class of IBusObject.
ibus_object_destroy ((IBusObject *)priv->connection);
g_assert (priv->connection == NULL);
BUG=none
TEST=ran Chrome for Chrome OS.
Review URL: http://codereview.appspot.com/3658041
unsigned would be better since the Python binding and engine proxy use unsigned for this purpose.
BUG=none
TEST=ran Chrome for Chrome OS.
Review URL: http://codereview.appspot.com/3660041
src/ibusinputcontext.c sends the massage with "(si)" but the daemon use the massage as "(&su)". This triggers assertion failure on Chrome OS.
BUG=none
TEST=change ibus-mozc's property on Chrome OS via the IME menu.
Review URL: http://codereview.appspot.com/3636041
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
Fix typo in IBusEngineDesc:rank doc and GI transfer mode for
ibus_component_get_engines().
BUG=none
TEST=manual
Review URL: http://codereview.appspot.com/3614041
Add #include <ibuspanelservice.h> to ibus.h so an external project (e.g. Chromium OS project) could implement its own panel component in C/C++.
Review URL: http://codereview.appspot.com/3411041
Removed a temporary hack for PREEDIT_CONDITION by adding bus_ibus_impl_is_embed_preedit_text function to ibusimpl.c.
BUG=none
TEST=manually
Review URL: http://codereview.appspot.com/3321041