aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorWilliam Hua <william.hua@canonical.com>2014-03-19 18:06:54 +1300
committerWilliam Hua <william.hua@canonical.com>2014-03-19 18:06:54 +1300
commitbe945fee7825c4852f558d6e2e77a196c184f9c5 (patch)
tree002e42d397f585863d85e2ef57a83b7e0a36a6e1 /lib
parente5772b006395eb5587be7cf88367a42e702582c7 (diff)
downloadayatana-indicator-keyboard-be945fee7825c4852f558d6e2e77a196c184f9c5.tar.gz
ayatana-indicator-keyboard-be945fee7825c4852f558d6e2e77a196c184f9c5.tar.bz2
ayatana-indicator-keyboard-be945fee7825c4852f558d6e2e77a196c184f9c5.zip
Check if IBus is connected before checking engine properties.
Diffstat (limited to 'lib')
-rw-r--r--lib/main.vala59
1 files changed, 31 insertions, 28 deletions
diff --git a/lib/main.vala b/lib/main.vala
index 4367e9ae..9e74ee84 100644
--- a/lib/main.vala
+++ b/lib/main.vala
@@ -577,34 +577,37 @@ public class Indicator.Keyboard.Service : Object {
}
if (ibus_panel == null && sources[i].is_ibus) {
- var connection = get_ibus ().get_connection ();
- var name = "org.freedesktop.IBus.Panel";
- var path = "/org/freedesktop/IBus/Panel";
-
- try {
- ibus_panel = connection.get_proxy_sync (name, path);
-
- ((!) ibus_panel).properties_registered.connect ((variant) => {
- var properties = new IBus.PropList ();
- properties.deserialize (variant);
-
- if (properties is IBus.PropList) {
- handle_properties_registered ((!) (properties as IBus.PropList));
- }
- });
- ((!) ibus_panel).property_updated.connect ((variant) => {
- var type = IBus.PropType.NORMAL;
- var state = IBus.PropState.INCONSISTENT;
- var text = new IBus.Text.from_static_string ("");
- var property = new IBus.Property ("", type, text, null, text, false, false, state, null);
- property.deserialize (variant);
-
- if (property is IBus.Property) {
- handle_property_updated ((!) (property as IBus.Property));
- }
- });
- } catch (IOError error) {
- warning ("error: %s", error.message);
+ DBusConnection? connection = get_ibus ().get_connection ();
+
+ if (connection != null) {
+ var name = "org.freedesktop.IBus.Panel";
+ var path = "/org/freedesktop/IBus/Panel";
+
+ try {
+ ibus_panel = ((!) connection).get_proxy_sync (name, path);
+
+ ((!) ibus_panel).properties_registered.connect ((variant) => {
+ var properties = new IBus.PropList ();
+ properties.deserialize (variant);
+
+ if (properties is IBus.PropList) {
+ handle_properties_registered ((!) (properties as IBus.PropList));
+ }
+ });
+ ((!) ibus_panel).property_updated.connect ((variant) => {
+ var type = IBus.PropType.NORMAL;
+ var state = IBus.PropState.INCONSISTENT;
+ var text = new IBus.Text.from_static_string ("");
+ var property = new IBus.Property ("", type, text, null, text, false, false, state, null);
+ property.deserialize (variant);
+
+ if (property is IBus.Property) {
+ handle_property_updated ((!) (property as IBus.Property));
+ }
+ });
+ } catch (IOError error) {
+ warning ("error: %s", error.message);
+ }
}
}
}