Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Side by Side Diff: chrome/browser/chromeos/input_method/input_method_manager_impl.cc

Issue 13949015: Supporting multiple keyboard layouts. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressing comment Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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_impl.h" 5 #include "chrome/browser/chromeos/input_method/input_method_manager_impl.h"
6 6
7 #include <algorithm> // std::find 7 #include <algorithm> // std::find
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 descriptor = &(i->second); 311 descriptor = &(i->second);
312 } 312 }
313 DCHECK(descriptor); 313 DCHECK(descriptor);
314 314
315 previous_input_method_ = current_input_method_; 315 previous_input_method_ = current_input_method_;
316 current_input_method_ = *descriptor; 316 current_input_method_ = *descriptor;
317 } 317 }
318 318
319 // Change the keyboard layout to a preferred layout for the input method. 319 // Change the keyboard layout to a preferred layout for the input method.
320 if (!xkeyboard_->SetCurrentKeyboardLayoutByName( 320 if (!xkeyboard_->SetCurrentKeyboardLayoutByName(
321 current_input_method_.keyboard_layout())) { 321 current_input_method_.GetPreferredKeyboardLayout())) {
322 LOG(ERROR) << "Failed to change keyboard layout to " 322 LOG(ERROR) << "Failed to change keyboard layout to "
323 << current_input_method_.keyboard_layout(); 323 << current_input_method_.GetPreferredKeyboardLayout();
324 } 324 }
325 325
326 // Update input method indicators (e.g. "US", "DV") in Chrome windows. 326 // Update input method indicators (e.g. "US", "DV") in Chrome windows.
327 FOR_EACH_OBSERVER(InputMethodManager::Observer, 327 FOR_EACH_OBSERVER(InputMethodManager::Observer,
328 observers_, 328 observers_,
329 InputMethodChanged(this, show_message)); 329 InputMethodChanged(this, show_message));
330 } 330 }
331 331
332 void InputMethodManagerImpl::OnComponentExtensionInitialized( 332 void InputMethodManagerImpl::OnComponentExtensionInitialized(
333 scoped_ptr<ComponentExtensionIMEManagerDelegate> delegate) { 333 scoped_ptr<ComponentExtensionIMEManagerDelegate> delegate) {
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 InputMethodEngine* engine) { 383 InputMethodEngine* engine) {
384 if (state_ == STATE_TERMINATING) 384 if (state_ == STATE_TERMINATING)
385 return; 385 return;
386 386
387 if (!extension_ime_util::IsExtensionIME(id) && 387 if (!extension_ime_util::IsExtensionIME(id) &&
388 !ComponentExtensionIMEManager::IsComponentExtensionIMEId(id)) { 388 !ComponentExtensionIMEManager::IsComponentExtensionIMEId(id)) {
389 DVLOG(1) << id << " is not a valid extension input method ID."; 389 DVLOG(1) << id << " is not a valid extension input method ID.";
390 return; 390 return;
391 } 391 }
392 392
393 const std::string layout = layouts.empty() ? "" : layouts[0];
394 // TODO(nona): Support options page for normal extension ime. 393 // TODO(nona): Support options page for normal extension ime.
395 // crbug.com/156283. 394 // crbug.com/156283.
396 extra_input_methods_[id] = 395 extra_input_methods_[id] =
397 InputMethodDescriptor(id, name, layout, language, ""); 396 InputMethodDescriptor(id, name, layouts, language, "");
398 if (!Contains(filtered_extension_imes_, id) && 397 if (!Contains(filtered_extension_imes_, id) &&
399 !ComponentExtensionIMEManager::IsComponentExtensionIMEId(id)) { 398 !ComponentExtensionIMEManager::IsComponentExtensionIMEId(id)) {
400 if (!Contains(active_input_method_ids_, id)) { 399 if (!Contains(active_input_method_ids_, id)) {
401 active_input_method_ids_.push_back(id); 400 active_input_method_ids_.push_back(id);
402 } else { 401 } else {
403 DVLOG(1) << "AddInputMethodExtension: alread added: " 402 DVLOG(1) << "AddInputMethodExtension: alread added: "
404 << id << ", " << name; 403 << id << ", " << name;
405 // Call Start() anyway, just in case. 404 // Call Start() anyway, just in case.
406 } 405 }
407 406
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after
794 candidate_window_controller_.reset( 793 candidate_window_controller_.reset(
795 CandidateWindowController::CreateCandidateWindowController()); 794 CandidateWindowController::CreateCandidateWindowController());
796 if (candidate_window_controller_->Init(ibus_controller_.get())) 795 if (candidate_window_controller_->Init(ibus_controller_.get()))
797 candidate_window_controller_->AddObserver(this); 796 candidate_window_controller_->AddObserver(this);
798 else 797 else
799 DVLOG(1) << "Failed to initialize the candidate window controller"; 798 DVLOG(1) << "Failed to initialize the candidate window controller";
800 } 799 }
801 800
802 } // namespace input_method 801 } // namespace input_method
803 } // namespace chromeos 802 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698