File fix-initial-input-mode.patch of Package mozc

diff -ru unix.org/ibus/property_handler.cc unix/ibus/property_handler.cc
--- unix.org/ibus/property_handler.cc	2013-10-29 02:17:24.898870371 +0900
+++ unix/ibus/property_handler.cc	2013-10-29 02:48:55.617344149 +0900
@@ -84,8 +84,27 @@
       client_(client),
       translator_(translator),
       original_composition_mode_(kMozcEngineInitialCompositionMode),
+#if IBUS_CHECK_VERSION(1, 5, 0)
+      is_activated_(false),
+#else
       is_activated_(true),
+#endif
       is_disabled_(false) {
+  commands::KeyEvent key;
+  if (is_activated_) {
+    key.set_special_key(mozc::commands::KeyEvent::ON);
+  } else {
+    key.set_special_key(mozc::commands::KeyEvent::OFF);
+  }
+  key.set_activated(is_activated_);
+  key.set_mode(original_composition_mode_);
+  commands::Output output;
+  if (client_->SendKey(key, &output)) {
+    original_composition_mode_ = output.status().mode();
+    is_activated_ = output.status().activated();
+  } else {
+    LOG(ERROR) << "SendKey failed";
+  }
 
   AppendCompositionPropertyToPanel();
 #ifndef OS_CHROMEOS
@@ -133,6 +152,9 @@
   IBusPropList *sub_prop_list = ibus_prop_list_new();
 
   // Create items for the radio menu.
+  const commands::CompositionMode initial_mode = is_activated_ ?
+      original_composition_mode_ :
+      kMozcEnginePropertyIMEOffState->composition_mode;
   string icon_path_for_panel;
   const char *mode_symbol = NULL;
   for (size_t i = 0; i < kMozcEnginePropertiesSize; ++i) {
@@ -140,7 +162,7 @@
     IBusText *label = ibus_text_new_from_string(
         translator_->MaybeTranslate(entry.label).c_str());
     IBusPropState state = PROP_STATE_UNCHECKED;
-    if (entry.composition_mode == kMozcEngineInitialCompositionMode) {
+    if (entry.composition_mode == initial_mode) {
       state = PROP_STATE_CHECKED;
       icon_path_for_panel = GetIconPath(entry.icon);
       mode_symbol = entry.label_for_panel;
Only in unix/ibus: property_handler.cc.orig
openSUSE Build Service is sponsored by