Yusuke Sato [Fri, 22 Apr 2011 11:17:14 +0000 (20:17 +0900)]
Fix SEGV in im-ibus.so on Chromium OS
Review URL: http://codereview.appspot.com/4440060
Yusuke Sato [Fri, 22 Apr 2011 11:07:43 +0000 (20:07 +0900)]
Add org.freedesktop.IBus.InputContext.ProcessHandWritingEvent and CancelHandWriting to support a handwriting engine.
Review URL: http://codereview.appspot.com/4433059
Daiki Ueno [Mon, 18 Apr 2011 21:09:10 +0000 (17:09 -0400)]
Export input context surrounding-text API to Python.
BUG=none
TEST=manual
Review URL: http://codereview.appspot.com/4442059
Patch from Daiki Ueno <daiki.ueno@gmail.com>.
Peng Huang [Mon, 18 Apr 2011 15:18:27 +0000 (11:18 -0400)]
Use g_initable_new to create BusFactoryProxy.
BUG=none
TEST=Linux desktop
Review URL: http://codereview.appspot.com/4446051
Peng Huang [Sat, 9 Apr 2011 03:29:23 +0000 (23:29 -0400)]
Revert "Change default values of some config."
This change was commited by mistake.
This reverts commit
ed4775b5fec355c1ccb13947d03dcac0aaaeb47f.
Peng Huang [Fri, 8 Apr 2011 13:45:18 +0000 (09:45 -0400)]
Fix problem in creating IBusPoxy in synchronous mode.
Peng Huang [Fri, 8 Apr 2011 13:49:20 +0000 (09:49 -0400)]
Refine RequestName code and fix make dpkg errors.
BUG=none
TEST=Linux Desktop
Review URL: http://codereview.appspot.com/4368056
Peng Huang [Fri, 8 Apr 2011 13:19:13 +0000 (09:19 -0400)]
Fix focus issue when reconnect to ibus-daemon
BUG=none
TEST=Linux desktop
Review URL: http://codereview.appspot.com/4365049
Takao Fujiwara [Fri, 8 Apr 2011 13:18:23 +0000 (09:18 -0400)]
Implement APIs for another non-Python panel.
1. Support icon and prop_list = null in ibus_property_new with GIR.
2. Add getter methods in IBusText and IBusProperty since GJS cannot access
the members in C-Structure.
3. Add ibus_get_language_name() since GIR libxml2 does not provide the
useful APIs.
4. Implement flags in ibus_bus_request_name() to follow DBus
RequestName signal spec.
http://dbus.freedesktop.org/doc/dbus-specification.html#message-bus-names
This is needed to terminate the current IBus panel.
E.g. IBus GTK panel is launched by ibus-daemon but another panel is
launched by gnome-shell.
5. Support IBUS_BUS_NAME_FLAG_ALLOW_REPLACEMENT in ui/gtk/main.py
6. Fix bus_component_set_factory() not to call
bus_component_factory_destroy_cb() twice.
7. Hide ibus_text_new_from_static_string() for GIR.
8. Add ibus_is_running_gnome_shell() for ibus-ui-gtk because
gnome-shell runs earlier than ibus-ui-gtk.
Review URL: http://codereview.appspot.com/4279042
Patch from Takao Fujiwara <takao.fujiwara1@gmail.com>.
Daiki Ueno [Fri, 8 Apr 2011 01:11:39 +0000 (10:11 +0900)]
Export surrounding-text API to Python.
BUG=none
TEST=manually with modified ibus-anthy https://github.com/ueno/ibus-anthy/commit/
2303095f
Review URL: http://codereview.appspot.com/4377045
Peng Huang [Tue, 5 Apr 2011 14:27:32 +0000 (10:27 -0400)]
Fix make dpkg errors.
BUG=none
TEST=make dpkg
Review URL: http://codereview.appspot.com/4324047
Daiki Ueno [Tue, 5 Apr 2011 14:11:49 +0000 (10:11 -0400)]
Support surrounding-text retrieval.
Unlike the GtkIMContext API, IBus automatically retrieves
surrounding-text when certain events occurred to the
client ("before filter_keypress", for example). This makes the
engine API simpler but causes periodical emission of D-Bus
signals for updating surrounding-text information, which is
unwanted for typical engines.
For this reason, the surrounding-text support is currently
disabled by default. To enable it, pass
--enable-surrounding-text to configure. Also, even
surrounding-text support is compiled in, IBus does not start
polling until an engine requests surrounding-text using
ibus_engine_get_surrounding_text(). To make the function work
for the first time, clients should retrieve
initial surrounding-text when the engine is enabled (see ibus_im_context_focus_in() and
_ibus_context_enabled_cb() in client/gtk2/ibusimcontext.c).
BUG=Issue#778
TEST=manual
Review URL: http://codereview.appspot.com/4276082
Patch from Daiki Ueno <daiki.ueno@gmail.com>.
Peng Huang [Tue, 5 Apr 2011 14:08:34 +0000 (10:08 -0400)]
Fix a crash during creating IBusProxy asynchronously
BUG=chromium-os:13629
TEST=Linux desktop
Review URL: http://codereview.appspot.com/4344061
fujiwarat [Mon, 4 Apr 2011 10:33:47 +0000 (19:33 +0900)]
Update translations.
Update ar.po as.po da.po es.po fr.po gu.po hi.po kn.po mr.po nl.po
or.po pa.po pl.po pt_BR.po ta.po te.po uk.po zh_CN.po zh_TW.po
and LINGUAS.
fujiwarat [Thu, 31 Mar 2011 03:56:45 +0000 (12:56 +0900)]
Use ibus panel icon from the desktop theme instead of ibus-keyboard.
James Su [Wed, 12 May 2010 22:38:42 +0000 (15:38 -0700)]
Change default values of some config.
This CL changes the default value of use_global_engine, enable_by_default and use_sys_layout to TRUE. And also removes the default trigger key.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/2008016
Daiki Ueno [Tue, 29 Mar 2011 13:39:44 +0000 (09:39 -0400)]
Use gtk_status_icon_set_name() only if it is available.
gtk_status_icon_set_name() is not exported to python through pygtk2 <= 2.17,
which is the version from Debian sid and Fedora 14.
>>> import gtk
>>> gtk.pygtk_version
(2, 17, 0)
>>> hasattr(gtk.StatusIcon, 'set_name')
False
This patch checks the availability.
BUG=none
TEST=manual
Review URL: http://codereview.appspot.com/4327042
Patch from Daiki Ueno <daiki.ueno@gmail.com>.
fujiwarat [Fri, 25 Mar 2011 04:57:31 +0000 (13:57 +0900)]
Set WM_CLASS name instead of main.py
Daiki Ueno [Fri, 25 Mar 2011 15:16:18 +0000 (11:16 -0400)]
Add "in" keymap which maps Alt_R to AltGr.
BUG=none
TEST=manually with ibus-m17n
Review URL: http://codereview.appspot.com/4273109
Patch from Daiki Ueno <daiki.ueno@gmail.com>.
Peng Huang [Fri, 25 Mar 2011 15:07:38 +0000 (11:07 -0400)]
Verify global engine after changing preload_engines
BUG=http://crosbug.com/13406
TEST=Linux desktop
Review URL: http://codereview.appspot.com/4273111
Peng Huang [Wed, 23 Mar 2011 13:44:20 +0000 (09:44 -0400)]
Fix make debian package errors.
BUG=none
TEST=make dpkg
Review URL: http://codereview.appspot.com/4279068
Peng Huang [Wed, 23 Mar 2011 13:44:06 +0000 (09:44 -0400)]
Fix typos in IBusInputContext document
BUG=none
TEST=Linux desktop
Review URL: http://codereview.appspot.com/4273094
Peng Huang [Wed, 23 Mar 2011 13:43:43 +0000 (09:43 -0400)]
Use $(SED) to replace sed
BUG=none
TEST=Linux desktop
Review URL: http://codereview.appspot.com/4280059
Yusuke Sato [Tue, 22 Mar 2011 13:36:52 +0000 (22:36 +0900)]
Link appropriate libraries to ibus-scan.
TEST=git clone the clean tree, ran ./autogen.sh --enable-gtk-doc, then ran make.
Review URL: http://codereview.appspot.com/4289060
Yusuke Sato [Tue, 22 Mar 2011 05:09:34 +0000 (14:09 +0900)]
Add asynchronous InputContext.IsEnabled and InputContext.GetEngine APIs.
* Added asynchronous InputContext.IsEnabled and InputContext.GetEngine APIs. Now
all InputContext IPCs can be async.
* Added comments to src/ibusinputcontext.h.
* Moved input context tests from ibus-bus.c to ibus-inputcontext.c (new file),
and fixed flaky tests.
* Fixed typos in bus/.
BUG=http://code.google.com/p/ibus/issues/detail?id=1215
TEST=ran the new test
Review URL: http://codereview.appspot.com/4298049
Peng Huang [Fri, 18 Mar 2011 13:24:18 +0000 (09:24 -0400)]
Create a separate test case for ibus_bus_create_input_context_async().
Create a separate test case for ibus_bus_create_input_context_async(),
so we can use `ibus-bus -p /ibus/create-input-context' to test and debug
ibus_bus_create_input_context_async() only.
BUG=none
TEST=make check
Review URL: http://codereview.appspot.com/4298045
Peng Huang [Thu, 17 Mar 2011 14:52:38 +0000 (10:52 -0400)]
Refine document and coding style in ibusbus.[ch] and trim some private structs and api from document
BUG=none
TEST=make
Review URL: http://codereview.appspot.com/4290053
Peng Huang [Thu, 17 Mar 2011 14:49:03 +0000 (10:49 -0400)]
Do not block UI in IBusIMContext anymore.
Replace some block IPC calls with async IPC calls, and then IBusIMContext will
not block UI anymore.
BUG=http://crosbug.com/12310
TEST=Linux desktop
Review URL: http://codereview.appspot.com/4287054
Peng Huang [Wed, 16 Mar 2011 14:02:47 +0000 (10:02 -0400)]
Fix issue of InputContext.SetEngine.
InputContext.SetEngine returns error sometimes, because "request-engine"
signal handler calls an async function to set the engine of the context.
So checking context->engine != NULL just after emiting "request-engine"
signal is not correct.
BUG=none
TEST=Linux desktop
Review URL: http://codereview.appspot.com/4287049
Peng Huang [Wed, 16 Mar 2011 14:01:18 +0000 (10:01 -0400)]
Add git.mk from gtk+ project, Use it to update .gitignore
BUG=none
TEST=make
Review URL: http://codereview.appspot.com/4280050
Peng Huang [Tue, 15 Mar 2011 17:32:55 +0000 (13:32 -0400)]
Update gtk-doc
BUG=
TEST=Linux documemt
Review URL: http://codereview.appspot.com/4277054
Zach Kuznia [Mon, 14 Mar 2011 06:42:32 +0000 (15:42 +0900)]
This can cause crashes on cleanup when multiple components are implemented in the same process.
Review URL: http://codereview.appspot.com/4241058
Patch from Zach Kuznia <zork@chromium.org>.
fujiwarat [Fri, 11 Mar 2011 06:53:53 +0000 (15:53 +0900)]
Fix preedit_string = NULL in ibus-x11 _free_ic()
Peng Huang [Fri, 11 Mar 2011 15:37:40 +0000 (10:37 -0500)]
Fix make check error
BUG=none
TEST=make check
Review URL: http://codereview.appspot.com/4250077
Yusuke Sato [Wed, 9 Mar 2011 23:44:38 +0000 (08:44 +0900)]
Update symbols file.
./autogen.sh
./configure --enable-gtk-doc
make dpkg
cp ppa/ibus-1.3.99.
20110309/debian/libibus-1.0-0/DEBIAN/symbols debian/libibus-1.0-0.symbols
vi debian/libibus-1.0-0.symbols # remove "-1phuang1~maverick1"
make dpkg # confirm that lintian does not report an error.
Review URL: http://codereview.appspot.com/4253068
Yusuke Sato [Wed, 15 Sep 2010 03:25:17 +0000 (12:25 +0900)]
Fix issues of the "previous_engine" hotkey.
Check global_previous_engine_name when the previous engine is requested and rewrite it if necessary.
This change ensures that the "previous_engine" hotkey (Ctrl+space on Chrome OS) always works
whenever two or more engines are preloaded.
Currently, Ctrl+space could become NOP by the following scenarios (http://crosbug.com/6609):
(1)
1. preload engines A, B, C.
2. switch to A.
3. switch to B.
4. at this point, ctrl+space works fine. It selectes A and B alternately.
5. switch to A.
6. remove B from the preloaded engline list.
7. at this point, ctrl+space suddenly becomes NOP although C is still preloaded.
This is because the callback function of ctrl+space detects
global_previous_engine_name (i.e. B) is removed and automatically selects A (not
C) as a global_previous_engine_name.
(2)
1. preload engines A, B.
2. switch to A.
3. switch to B.
4. at this point, ctrl+space works fine. It selectes A and B alternately.
5. switch to A.
6. remove B from the preloaded engline list.
7. press ctrl+space several times, confirm that nothing happens (this is
expected since only one engine, A, is preloaded).
8. preload additional engine, C.
9. at this point, ctrl+space is still NOP although two engines, A and C, are
preloaded.
James Su [Thu, 27 May 2010 05:31:06 +0000 (22:31 -0700)]
If the current engine is removed, then switch to another engine automatically.
BUG=http://crosbug.com/3577
TEST=manual test.
Review URL: http://codereview.chromium.org/2259004
Yusuke Sato [Tue, 8 Mar 2011 12:57:10 +0000 (21:57 +0900)]
Remove -Wall warnings.
Review URL: http://codereview.appspot.com/4261056
Yusuke Sato [Mon, 7 Mar 2011 15:55:36 +0000 (00:55 +0900)]
Add asynchronous APIs to ibusbus.h
Modified src/tests/ibus-bus.c so that it could be compiled with ibus-1.3.99 as well.
BUG=chromium-os:12581
TEST=added async api tests to the src/tests/ibus-bus.c and ran it locally.
Review URL: http://codereview.appspot.com/4179061
Peng Huang [Mon, 7 Mar 2011 15:26:04 +0000 (10:26 -0500)]
Move gtk_key_snooper_remove from function object_fini to class_fini.
BUG=http://crosbug.com/12803
TEST=Linux desktop
Review URL: http://codereview.appspot.com/4267044
Peng Huang [Tue, 1 Mar 2011 20:34:37 +0000 (15:34 -0500)]
Optimize focus_in to avoid call some UI blocking functions.
focus_in calls some X blocking functions. It will block UI. This change delays the X blocking calls to idle callback, to avoid blocking UI.
BUG=http://crbug.com/74237
TEST=Linux desktop
Review URL: http://codereview.appspot.com/4254048
Peng Huang [Mon, 28 Feb 2011 20:57:47 +0000 (15:57 -0500)]
Unify async and sync function names.
BUG=none
TEST=Linux desktop
Review URL: http://codereview.appspot.com/4246042
Peng Huang [Mon, 28 Feb 2011 15:25:54 +0000 (10:25 -0500)]
Fix a race problem in SetGlobalEngine and add set_global_engine in python library
The race problem:
1. global engine == A
2. call SetGlobalEngine(B) asynchronously
3. call SetGlobalEngine(A) immediately
3.1 Because step 2 is not finished, so the global engine is still A,
and SetGlobalEngine(A) returns sucessfully.
4. SetGlobalEngine(B) is completed and the global engine becomes B
BUG=http://crosbug.com/12414
TEST=Linux desktop
Review URL: http://codereview.appspot.com/4250041
fujiwarat [Fri, 18 Feb 2011 19:52:40 +0000 (04:52 +0900)]
Call gtk_key_snooper_remove when GTK IM client is switched.
Peng Huang [Fri, 18 Feb 2011 15:59:49 +0000 (10:59 -0500)]
Fix make dpkg errors.
BUG=none
TEST=make dpkg
Review URL: http://codereview.appspot.com/4184055
Peng Huang [Fri, 18 Feb 2011 15:59:06 +0000 (10:59 -0500)]
Add enable_conditional and disable_conditional in gconf schemas file
BUG=none
TEST=manual
Review URL: http://codereview.appspot.com/4183057
Peng Huang [Fri, 18 Feb 2011 15:58:27 +0000 (10:58 -0500)]
Fix crash when turn off "use global engine" option
BUG=none
TEST=Linux desktop
Review URL: http://codereview.appspot.com/4170061
Peng Huang [Fri, 18 Feb 2011 14:08:41 +0000 (09:08 -0500)]
Destroy IBusInputContext correctly in ibus-x11
BUG=none
TEST=Linux desktop
Review URL: http://codereview.appspot.com/4178062
fujiwarat [Thu, 17 Feb 2011 06:08:37 +0000 (15:08 +0900)]
s/LC_MESSAGES/LC_CTYPE/ in set_default_preload_engines.
Peng Huang [Wed, 16 Feb 2011 20:49:09 +0000 (15:49 -0500)]
Do not create GSimpleAsyncResult in ibus_input_context_process_key_event
This change also fixes memory leak of simple result object
BUG=none
TEST=Linux desktop
Review URL: http://codereview.appspot.com/4175051
Yusuke Sato [Wed, 16 Feb 2011 14:42:27 +0000 (23:42 +0900)]
Add async version of set_global_engine.
Patch from Zach Kuznia <zork@chromium.org>, modified by Yusuke Sato <yusukes@chromium.org>.
Review URL: http://codereview.appspot.com/4175047
Yusuke Sato [Wed, 16 Feb 2011 06:45:29 +0000 (15:45 +0900)]
Implement async version of ibus_config_set_value.
BUG=crosbug.com/11903
Review URL: http://codereview.appspot.com/4185041
Yusuke Sato [Tue, 15 Feb 2011 07:44:05 +0000 (16:44 +0900)]
Add engine_name parameter to the global-engine-changed signal.
This makes it possible for a client to know the current global engine w/o issuing GetGlobalEngine reqeust.
BUG=chromium-os:11908
Review URL: http://codereview.appspot.com/4177045
Yusuke Sato [Tue, 15 Feb 2011 01:27:03 +0000 (10:27 +0900)]
Use LC_MESSAGES instead of LC_ALL in bus_ibus_impl_set_default_preload_engines.
This is a fix for https://bugs.launchpad.net/ubuntu/+source/ibus/+bug/716314. Calling setlocale(LC_ALL, NULL); in the function seems not to be a good idea since the function could return a complex string like "LC_CTYPE=ja_JP.UTF-8;LC_NUMERIC=C;LC..." when two or more values are used for LC_xxx variables (e.g. ja_JP.UTF-8 and C.)
BUG=1204
Review URL: http://codereview.appspot.com/4160046
Yusuke Sato [Tue, 15 Feb 2011 01:24:20 +0000 (10:24 +0900)]
Never use ibus's US keymap in bus_input_context_filter_key, and use the keyval from X as-is.
I think this is important for supporting non-US keyboards like a Japanese-106 keyboard correctly.
Currently, when use_sys_layout config is unchecked (the default), ibus-daemon discards a keyval being passed from X, and regenerates a keyval from a keycode assuming the US layout.
However, I believe this behavior is not good for non-US keyboard layout users (e.g. Japanese or Korean keyboard users.) For example, the Japanese 106 keyboard has a key called Zenkaku_Hankaku (全角_半角, whose keycode is 49) on the left hand of the '1' key, and most users want to use the key for toggling IME. But, even if a user set 'Zenkaku_Hankaku' as the toggle hotkey using ibus-setup, the user cannot toggle IME unless the 'Use system keyboard layout' option is explicitly turned on. This is because when use_sys_layout is unchecked, ibus-daemon treats the Zenkaku_Hankaku key press (keycode=49) as tilde (~) key press (remember that the tilde's keycode is also 49 in the US keyboard layout.) This is very inconvenient and confusing.
Please also note that the hotkey configuration tool in ibus-setup always respects a keyval from X, and never checks the use_sys_layout value.
Review URL: http://codereview.appspot.com/4173046
Yusuke Sato [Tue, 15 Feb 2011 01:22:48 +0000 (10:22 +0900)]
Always call g_simple_async_result_complete in ibus_input_context_process_key_event_done in order to handle IPC errors correctly.
Review URL: http://codereview.appspot.com/4171049
Ahmad Sharif [Sat, 12 Feb 2011 14:38:35 +0000 (23:38 +0900)]
Fix compiler warnings in util/IMdkit/.
BUG=1201
Review URL: http://codereview.appspot.com/4171046
Patch from Ahmad Sharif <asharif@chromium.org>.
Yusuke Sato [Sat, 12 Feb 2011 13:56:49 +0000 (22:56 +0900)]
Ran 'make update-po' in po/.
BUG=1173
Review URL: http://codereview.appspot.com/4181044
Yusuke Sato [Fri, 11 Feb 2011 14:53:34 +0000 (23:53 +0900)]
Reimplement ibus_bus_watch_dbus_signal for GDBus and export it.
BUG=crosbug.com/11479
Review URL: http://codereview.appspot.com/4186041
Yusuke Sato [Fri, 11 Feb 2011 14:48:42 +0000 (23:48 +0900)]
Support enable/disable hotkeys that enable or disable ibus unconditionally (i.e. not toggle.)
I'll update ibus/po/*po files if the change looks good to you.
BUG=http://code.google.com/p/ibus/issues/detail?id=1173
TEST=manually
Review URL: http://codereview.appspot.com/3807047
phuang [Wed, 9 Feb 2011 12:02:44 +0000 (21:02 +0900)]
Fix ibus-daemon deadlock in engineproxy.c.
How to reproduce the deadlock on a desktop Linux like Ubuntu Maverick:
1. Add 20 seconds sleep in the beginning of the main() function of an engine (e.g. ibus-engine-mozc). See http://crosbug.com/11379#c16 .
2. Set preload_engines to "mozc" using ibus-setup.
3. Start ibus-daemon.
4. press the trigger hotkey twice within the 20 seconds.
Expected:
The second trigger hotkey press cancels the bus_engine_proxy_new operation started by the first one.
Actual:
ibus-daemon freezes. Stack trace: http://crosbug.com/11379#c20
BUG=http://crosbug.com/11379
TEST=see the steps above.
Review URL: http://codereview.appspot.com/4125053
Patch from phuang <shawn.p.huang@gmail.com>.
fujiwarat [Tue, 8 Feb 2011 15:51:39 +0000 (00:51 +0900)]
Add pkgdatadir in ibus-1.0.pc.in
fujiwarat [Tue, 8 Feb 2011 15:50:44 +0000 (00:50 +0900)]
Add GTK3 definitions.
fujiwarat [Tue, 8 Feb 2011 15:50:56 +0000 (00:50 +0900)]
Fix typo.
Yusuke Sato [Thu, 3 Feb 2011 01:15:24 +0000 (10:15 +0900)]
Overwrite Gtk+'s default compose table to fix crosbug.com/11421.
BUG=chromium-os:11421
TEST=manually done on Chrome OS.
Review URL: http://codereview.appspot.com/3989060
Peng Huang [Thu, 27 Jan 2011 23:01:34 +0000 (18:01 -0500)]
Fix build debian package error.
BUG=
TEST=make dpkg
Review URL: http://codereview.appspot.com/4013046
Peng Huang [Thu, 27 Jan 2011 15:06:09 +0000 (10:06 -0500)]
Export async version ibus_input_context_process_key_event.
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
Peng Huang [Thu, 27 Jan 2011 00:18:05 +0000 (19:18 -0500)]
Fix problem in introspection of Engine.
BUG=http://code.google.com/p/ibus/issues/detail?id=1194
TEST=Tested in Ubuntu 10.10
Review URL: http://codereview.appspot.com/4084046
fujiwarat [Wed, 26 Jan 2011 04:15:08 +0000 (13:15 +0900)]
Fix introspection definitions.
fujiwarat [Wed, 26 Jan 2011 05:01:25 +0000 (14:01 +0900)]
Set QT_IM_MODULE=xim in case of no ibus-qt.
fujiwarat [Wed, 26 Jan 2011 05:01:17 +0000 (14:01 +0900)]
Add signals in IBusPanelService for non-C classes.
fujiwarat [Mon, 24 Jan 2011 03:25:48 +0000 (12:25 +0900)]
Set GdkEventKey time for gdk_event_put with IBUS_FORWARD_MASK.
Yusuke Sato [Mon, 24 Jan 2011 01:56:05 +0000 (10:56 +0900)]
Add <signal name='ValueChanged'> to introspection_xml in src/ibusconfigservice.c.
I don't think that GDBus library in glib-2.26.[01] uses the information to filter out undefined signals, but just in case.
BUG=none
TEST=manually
Review URL: http://codereview.appspot.com/4015043
Peng Huang [Fri, 21 Jan 2011 15:57:54 +0000 (10:57 -0500)]
Fix some race conditions during create engine, also fix dpkg build error.
BUG=chromium-os:10750
TEST=on Linux desktop
Review URL: http://codereview.appspot.com/3970044
Yusuke Sato [Fri, 21 Jan 2011 12:03:23 +0000 (21:03 +0900)]
Emit the connected signal after setting up the connection.
Otherwise, we might miss the first a few DBus and IBus signals.
BUG=http://crosbug.com/11144
TEST=see the bug.
Review URL: http://codereview.appspot.com/4029043
Yusuke Sato [Wed, 19 Jan 2011 01:55:16 +0000 (10:55 +0900)]
Fix race condition between ibus_bus_set_global_engine() and ibus_bus_get_global_engine().
If focus moves between the two API calls, ibus_bus_get_global_engine() might return an unexpected engine name:
1. context A is focused, and the current global engine is "X".
2. ibus_bus_set_global_engine("Y") is called.
3. a user moves the focus from A to B. First, A's engine is set to NULL in bus_ibus_impl_set_focused_context(). Then, in the same function, B's engine is set to "X" (not "Y") since the _ibus_set_global_engine asynchronous call is not finished yet.
4. ibus_bus_set_global_engine("Y") async call successfully finishes. Context A's (not B's) engine is set to "Y", but context B, which has a focus, is not updated.
5. ibus_bus_get_global_engine() is called.
expected:
Y is returned.
actual:
X is returned. Since the context B has a focus, and B's engine is X.
BUG=http://crosbug.com/11031
TEST=see the bug
Review URL: http://codereview.appspot.com/4063041
Yusuke Sato [Wed, 19 Jan 2011 01:18:13 +0000 (10:18 +0900)]
Do not allow clients to destroy the server-side config service for safety.
Unset the own flag of priv->config so that the config proxy object never destroys the config service even if a client wrongly unref()s the priv->config object.
BUG=none
TEST=manually
Review URL: http://codereview.appspot.com/4060041
Yusuke Sato [Tue, 18 Jan 2011 13:00:57 +0000 (22:00 +0900)]
Fix possible SEGV in ibus_bus_get_global_engine.
The g_variant_get returns NULL when the IPC call times out.
BUG=none
TEST=none
Review URL: http://codereview.appspot.com/3974043
Yusuke Sato [Tue, 18 Jan 2011 12:51:40 +0000 (21:51 +0900)]
Handle GlobalEngineChanged signals from ibus-daemon.
BUG=http://crosbug.com/11011
TEST=manually
Review URL: http://codereview.appspot.com/4037042
Yusuke Sato [Tue, 18 Jan 2011 01:33:48 +0000 (10:33 +0900)]
On ChromeOS, we don't have to (and don't want to) set default preload engines.
BUG=none
TEST=manually
Review URL: http://codereview.appspot.com/4054041
Daiki Ueno [Mon, 17 Jan 2011 05:22:18 +0000 (14:22 +0900)]
Set nonzero serial number for RegistryChanged / EngineChanged signals.
libdbus expects each message serial is greater than 0.
https://code.google.com/p/ibus/issues/detail?id=1186
BUG=none
TEST=manual test described in the issue#1186
Review URL: http://codereview.appspot.com/4050041
Yusuke Sato [Sun, 16 Jan 2011 02:35:09 +0000 (11:35 +0900)]
Fix typo in the default configuration of the trigger hotkeys.
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
Yusuke Sato [Sun, 16 Jan 2011 02:34:34 +0000 (11:34 +0900)]
Set correct g-flags to proxy objects.
This change is similar to https://github.com/ibus/ibus/commit/
19247aac5a348185a0e180f254ab3858c5f85703.
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
Yusuke Sato [Wed, 12 Jan 2011 13:44:08 +0000 (22:44 +0900)]
Fix a gcc warning seen in Chromium OS build.
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
Yusuke Sato [Wed, 12 Jan 2011 13:43:16 +0000 (22:43 +0900)]
Remove a gcc warning.
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
Yusuke Sato [Wed, 12 Jan 2011 13:42:24 +0000 (22:42 +0900)]
Fix typo in ibus_bus_exit.
BUG=none
TEST=ran make CFLAGS="-Wall -O2"
Review URL: http://codereview.appspot.com/3900045
Yusuke Sato [Mon, 10 Jan 2011 05:25:07 +0000 (14:25 +0900)]
Fix the return value of ibus_bus_register_component so it returns TRUE on success.
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
Yusuke Sato [Sun, 9 Jan 2011 06:12:11 +0000 (15:12 +0900)]
Change the return type of ibus_bus_exit to make it compatible with ibus-1.3 API.
BUG=none
TEST=manually
Review URL: http://codereview.appspot.com/3923042
Daiki Ueno [Fri, 7 Jan 2011 01:42:44 +0000 (10:42 +0900)]
Set correct sender and interface when sending org.freedesktop.IBus signals.
BUG=none
TEST=manual
Review URL: http://codereview.appspot.com/3775042
Yusuke Sato [Thu, 6 Jan 2011 16:38:23 +0000 (01:38 +0900)]
Set the "g-default-timeout" property for ibusconfig, ibusinputcontext, and ibusbus objects. The GDBus default timeout (25 seconds) seems to be too long for IBus.
BUG=none
TEST=manually, with IBUS_BUS_TIMEOUT=-3,-2,-1,0,1,1000,6000,abc,1abc,abc1
Review URL: http://codereview.appspot.com/3799049
Yusuke Sato [Thu, 6 Jan 2011 03:28:54 +0000 (12:28 +0900)]
Use the G_DBUS_CALL_FLAGS_NO_AUTO_START flag just in case.
BUG=none
TEST=manually on Chromium OS.
Review URL: http://codereview.appspot.com/3774043
Yusuke Sato [Thu, 6 Jan 2011 03:24:36 +0000 (12:24 +0900)]
Do not write empty string to "preload_engines" for safety.
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
Yusuke Sato [Wed, 5 Jan 2011 23:44:49 +0000 (08:44 +0900)]
Call ibus_hotkey_profile_remove_hotkey_by_event in bus_ibus_impl_set_trigger before registering the fallback hotkey, just in case.
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
Yusuke Sato [Wed, 5 Jan 2011 23:25:47 +0000 (08:25 +0900)]
Replace g_return_if_fail with g_warning since the error message 'desc != NULL' seems confusing.
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
Yusuke Sato [Wed, 5 Jan 2011 23:22:38 +0000 (08:22 +0900)]
Fix --timeout command line option of ibus-daemon.
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
Yusuke Sato [Sat, 1 Jan 2011 08:34:37 +0000 (17:34 +0900)]
Support hotkeys that use Super/Hyper modifiers.
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
Peng Huang [Tue, 28 Dec 2010 23:44:16 +0000 (16:44 -0700)]
Reply an error message to sender, if ibus-daemon can not forward method call message successfully.
BUG=none
TEST=manually
Review URL: http://codereview.appspot.com/3825042
Daiki Ueno [Tue, 28 Dec 2010 03:46:25 +0000 (12:46 +0900)]
Fix g_variant_get() call in DeleteSurroundingText signal handler.
BUG=none
TEST=manual
Review URL: http://codereview.appspot.com/3820042
Yusuke Sato [Sun, 26 Dec 2010 22:58:29 +0000 (07:58 +0900)]
Fix API compatibility issue in ibus_config_new.
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
Yusuke Sato [Sun, 26 Dec 2010 22:57:09 +0000 (07:57 +0900)]
Create an instance of GDBusProxy with G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES flag.
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