diff options
author | William Hua <william.hua@canonical.com> | 2014-03-19 18:06:54 +1300 |
---|---|---|
committer | William Hua <william.hua@canonical.com> | 2014-03-19 18:06:54 +1300 |
commit | be945fee7825c4852f558d6e2e77a196c184f9c5 (patch) | |
tree | 002e42d397f585863d85e2ef57a83b7e0a36a6e1 | |
parent | e5772b006395eb5587be7cf88367a42e702582c7 (diff) | |
download | ayatana-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.
-rw-r--r-- | lib/main.vala | 59 | ||||
-rw-r--r-- | po/indicator-keyboard.pot | 10 |
2 files changed, 36 insertions, 33 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); + } } } } diff --git a/po/indicator-keyboard.pot b/po/indicator-keyboard.pot index 34931572..090c84a3 100644 --- a/po/indicator-keyboard.pot +++ b/po/indicator-keyboard.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-09-27 16:28+0200\n" +"POT-Creation-Date: 2014-03-19 18:04+1300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -17,19 +17,19 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ../lib/main.vala:427 +#: ../lib/main.vala:655 #, c-format msgid "%s input source" msgstr "" -#: ../lib/main.vala:525 +#: ../lib/main.vala:801 msgid "Character Map" msgstr "" -#: ../lib/main.vala:526 +#: ../lib/main.vala:802 msgid "Keyboard Layout Chart" msgstr "" -#: ../lib/main.vala:527 +#: ../lib/main.vala:803 msgid "Text Entry Settings..." msgstr "" |