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

Side by Side Diff: views/ime/input_method_ibus.cc

Issue 8509034: Move views/ime/text_input_client.h to ui/base/ime/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review Created 9 years, 1 month 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "views/ime/input_method_ibus.h" 5 #include "views/ime/input_method_ibus.h"
6 6
7 #include <ibus.h> 7 #include <ibus.h>
8 8
9 #include <cstring> 9 #include <cstring>
10 #include <set> 10 #include <set>
(...skipping 577 matching lines...) Expand 10 before | Expand all | Expand 10 after
588 // CreateInputContextDone(). 588 // CreateInputContextDone().
589 pending_create_fake_ic_request_->abandon(); 589 pending_create_fake_ic_request_->abandon();
590 pending_create_fake_ic_request_ = NULL; 590 pending_create_fake_ic_request_ = NULL;
591 } else if (fake_context_) { 591 } else if (fake_context_) {
592 ibus_proxy_destroy(reinterpret_cast<IBusProxy *>(fake_context_)); 592 ibus_proxy_destroy(reinterpret_cast<IBusProxy *>(fake_context_));
593 DCHECK(!fake_context_); 593 DCHECK(!fake_context_);
594 } 594 }
595 } 595 }
596 596
597 void InputMethodIBus::ConfirmCompositionText() { 597 void InputMethodIBus::ConfirmCompositionText() {
598 TextInputClient* client = GetTextInputClient(); 598 ui::TextInputClient* client = GetTextInputClient();
599 if (client && client->HasCompositionText()) 599 if (client && client->HasCompositionText())
600 client->ConfirmCompositionText(); 600 client->ConfirmCompositionText();
601 601
602 ResetContext(); 602 ResetContext();
603 } 603 }
604 604
605 void InputMethodIBus::ResetContext() { 605 void InputMethodIBus::ResetContext() {
606 if (!context_focused_ || !GetTextInputClient()) 606 if (!context_focused_ || !GetTextInputClient())
607 return; 607 return;
608 608
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
736 736
737 // We shouldn't dispatch the character anymore if the key event caused focus 737 // We shouldn't dispatch the character anymore if the key event caused focus
738 // change. 738 // change.
739 if (old_focused_view != focused_view()) 739 if (old_focused_view != focused_view())
740 return; 740 return;
741 741
742 // Process compose and dead keys 742 // Process compose and dead keys
743 if (character_composer_.FilterKeyPress(ibus_keyval)) { 743 if (character_composer_.FilterKeyPress(ibus_keyval)) {
744 string16 composed = character_composer_.composed_character(); 744 string16 composed = character_composer_.composed_character();
745 if (!composed.empty()) { 745 if (!composed.empty()) {
746 TextInputClient* client = GetTextInputClient(); 746 ui::TextInputClient* client = GetTextInputClient();
747 if (client) 747 if (client)
748 client->InsertText(composed); 748 client->InsertText(composed);
749 } 749 }
750 return; 750 return;
751 } 751 }
752 // If a key event was not filtered by |context_| and |character_composer_|, 752 // If a key event was not filtered by |context_| and |character_composer_|,
753 // then it means the key event didn't generate any result text. So we need 753 // then it means the key event didn't generate any result text. So we need
754 // to send corresponding character to the focused text input client. 754 // to send corresponding character to the focused text input client.
755 755
756 TextInputClient* client = GetTextInputClient(); 756 ui::TextInputClient* client = GetTextInputClient();
757 char16 ch = key.GetCharacter(); 757 char16 ch = key.GetCharacter();
758 if (ch && client) 758 if (ch && client)
759 client->InsertChar(ch, key.flags()); 759 client->InsertChar(ch, key.flags());
760 } 760 }
761 761
762 void InputMethodIBus::ProcessInputMethodResult(const KeyEvent& key, 762 void InputMethodIBus::ProcessInputMethodResult(const KeyEvent& key,
763 bool filtered) { 763 bool filtered) {
764 TextInputClient* client = GetTextInputClient(); 764 ui::TextInputClient* client = GetTextInputClient();
765 DCHECK(client); 765 DCHECK(client);
766 766
767 if (result_text_.length()) { 767 if (result_text_.length()) {
768 if (filtered && NeedInsertChar()) { 768 if (filtered && NeedInsertChar()) {
769 for (string16::const_iterator i = result_text_.begin(); 769 for (string16::const_iterator i = result_text_.begin();
770 i != result_text_.end(); ++i) { 770 i != result_text_.end(); ++i) {
771 client->InsertChar(*i, key.flags()); 771 client->InsertChar(*i, key.flags());
772 } 772 }
773 } else { 773 } else {
774 client->InsertText(result_text_); 774 client->InsertText(result_text_);
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
931 void InputMethodIBus::OnHidePreeditText(IBusInputContext* context) { 931 void InputMethodIBus::OnHidePreeditText(IBusInputContext* context) {
932 DCHECK_EQ(context_, context); 932 DCHECK_EQ(context_, context);
933 if (composition_.text.empty() || IsTextInputTypeNone()) 933 if (composition_.text.empty() || IsTextInputTypeNone())
934 return; 934 return;
935 935
936 // Intentionally leaves |composing_text_| unchanged. 936 // Intentionally leaves |composing_text_| unchanged.
937 composition_changed_ = true; 937 composition_changed_ = true;
938 composition_.Clear(); 938 composition_.Clear();
939 939
940 if (pending_key_events_.empty()) { 940 if (pending_key_events_.empty()) {
941 TextInputClient* client = GetTextInputClient(); 941 ui::TextInputClient* client = GetTextInputClient();
942 if (client && client->HasCompositionText()) 942 if (client && client->HasCompositionText())
943 client->ClearCompositionText(); 943 client->ClearCompositionText();
944 composition_changed_ = false; 944 composition_changed_ = false;
945 } 945 }
946 } 946 }
947 947
948 void InputMethodIBus::OnDestroy(IBusInputContext* context) { 948 void InputMethodIBus::OnDestroy(IBusInputContext* context) {
949 DCHECK_EQ(context_, context); 949 DCHECK_EQ(context_, context);
950 g_object_unref(context_); 950 g_object_unref(context_);
951 context_ = NULL; 951 context_ = NULL;
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
1017 DCHECK_EQ(GetIBus(), bus); 1017 DCHECK_EQ(GetIBus(), bus);
1018 DCHECK(data); 1018 DCHECK(data);
1019 IBusInputContext* ic = 1019 IBusInputContext* ic =
1020 ibus_bus_create_input_context_async_finish(bus, res, NULL); 1020 ibus_bus_create_input_context_async_finish(bus, res, NULL);
1021 if (ic) 1021 if (ic)
1022 data->StoreOrAbandonInputContext(ic); 1022 data->StoreOrAbandonInputContext(ic);
1023 delete data; 1023 delete data;
1024 } 1024 }
1025 1025
1026 } // namespace views 1026 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698