OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/chromeos/input_method/input_method_manager.h" | 5 #include "chrome/browser/chromeos/input_method/input_method_manager.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include <glib.h> | 9 #include <glib.h> |
10 | 10 |
(...skipping 18 matching lines...) Expand all Loading... |
29 #include "content/public/browser/notification_service.h" | 29 #include "content/public/browser/notification_service.h" |
30 #include "content/public/browser/notification_types.h" | 30 #include "content/public/browser/notification_types.h" |
31 #include "googleurl/src/gurl.h" | 31 #include "googleurl/src/gurl.h" |
32 #include "ui/base/accelerators/accelerator.h" | 32 #include "ui/base/accelerators/accelerator.h" |
33 #include "unicode/uloc.h" | 33 #include "unicode/uloc.h" |
34 | 34 |
35 #if !defined(USE_VIRTUAL_KEYBOARD) | 35 #if !defined(USE_VIRTUAL_KEYBOARD) |
36 #include "chrome/browser/chromeos/input_method/candidate_window.h" | 36 #include "chrome/browser/chromeos/input_method/candidate_window.h" |
37 #endif | 37 #endif |
38 | 38 |
| 39 #if defined(HAVE_IBUS) |
| 40 #include <ibus.h> |
| 41 #endif |
| 42 |
39 using content::BrowserThread; | 43 using content::BrowserThread; |
40 | 44 |
41 namespace { | 45 namespace { |
42 | 46 |
43 const char kIBusDaemonPath[] = "/usr/bin/ibus-daemon"; | 47 const char kIBusDaemonPath[] = "/usr/bin/ibus-daemon"; |
44 | 48 |
45 // Finds a property which has |new_prop.key| from |prop_list|, and replaces the | 49 // Finds a property which has |new_prop.key| from |prop_list|, and replaces the |
46 // property with |new_prop|. Returns true if such a property is found. | 50 // property with |new_prop|. Returns true if such a property is found. |
47 bool FindAndUpdateProperty( | 51 bool FindAndUpdateProperty( |
48 const chromeos::input_method::InputMethodProperty& new_prop, | 52 const chromeos::input_method::InputMethodProperty& new_prop, |
(...skipping 716 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
765 tentative_current_input_method_id_); | 769 tentative_current_input_method_id_); |
766 if (engine_iter != value.string_list_value.end()) { | 770 if (engine_iter != value.string_list_value.end()) { |
767 // Use std::rotate to keep the relative order of engines the same e.g. | 771 // Use std::rotate to keep the relative order of engines the same e.g. |
768 // from "A,B,C" to "C,A,B". | 772 // from "A,B,C" to "C,A,B". |
769 // We don't have to |active_input_method_ids_|, which decides the | 773 // We don't have to |active_input_method_ids_|, which decides the |
770 // order of engines in the switcher menu, since the relative order | 774 // order of engines in the switcher menu, since the relative order |
771 // of |value.string_list_value| is not changed. | 775 // of |value.string_list_value| is not changed. |
772 std::rotate(value.string_list_value.begin(), | 776 std::rotate(value.string_list_value.begin(), |
773 engine_iter, // this becomes the new first element | 777 engine_iter, // this becomes the new first element |
774 value.string_list_value.end()); | 778 value.string_list_value.end()); |
| 779 #if defined(HAVE_IBUS) |
| 780 #if IBUS_CHECK_VERSION(1, 4, 99) |
| 781 ibus_controller_->ChangeInputMethod(value.string_list_value[0]); |
| 782 #endif |
| 783 #endif |
775 } else { | 784 } else { |
776 LOG(WARNING) << tentative_current_input_method_id_ | 785 LOG(WARNING) << tentative_current_input_method_id_ |
777 << " is not in preload_engines: " << value.ToString(); | 786 << " is not in preload_engines: " << value.ToString(); |
778 } | 787 } |
779 tentative_current_input_method_id_.erase(); | 788 tentative_current_input_method_id_.erase(); |
780 } | 789 } |
781 | 790 |
782 if (ibus_controller_->SetInputMethodConfig(section, config_name, value)) { | 791 if (ibus_controller_->SetInputMethodConfig(section, config_name, value)) { |
783 // Check if it's a change in active input methods. | 792 // Check if it's a change in active input methods. |
784 if (config_name == language_prefs::kPreloadEnginesConfigName) { | 793 if (config_name == language_prefs::kPreloadEnginesConfigName) { |
(...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1263 DISALLOW_COPY_AND_ASSIGN(InputMethodManagerImpl); | 1272 DISALLOW_COPY_AND_ASSIGN(InputMethodManagerImpl); |
1264 }; | 1273 }; |
1265 | 1274 |
1266 // static | 1275 // static |
1267 InputMethodManager* InputMethodManager::GetInstance() { | 1276 InputMethodManager* InputMethodManager::GetInstance() { |
1268 return InputMethodManagerImpl::GetInstance(); | 1277 return InputMethodManagerImpl::GetInstance(); |
1269 } | 1278 } |
1270 | 1279 |
1271 } // namespace input_method | 1280 } // namespace input_method |
1272 } // namespace chromeos | 1281 } // namespace chromeos |
OLD | NEW |