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

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

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

Powered by Google App Engine
This is Rietveld 408576698