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

Side by Side Diff: views/ime/input_method_gtk.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_gtk.h ('k') | views/ime/input_method_ibus.h » ('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_gtk.h" 5 #include "views/ime/input_method_gtk.h"
6 6
7 #include <gdk/gdk.h> 7 #include <gdk/gdk.h>
8 #include <gdk/gdkkeysyms.h> 8 #include <gdk/gdkkeysyms.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 void InputMethodGtk::OnDidChangeFocus(View* focused_before, View* focused) { 202 void InputMethodGtk::OnDidChangeFocus(View* focused_before, View* focused) {
203 UpdateContextFocusState(); 203 UpdateContextFocusState();
204 204
205 // Force to update caret bounds, in case the View thinks that the caret 205 // Force to update caret bounds, in case the View thinks that the caret
206 // bounds has not changed. 206 // bounds has not changed.
207 if (context_focused_) 207 if (context_focused_)
208 OnCaretBoundsChanged(GetFocusedView()); 208 OnCaretBoundsChanged(GetFocusedView());
209 } 209 }
210 210
211 void InputMethodGtk::ConfirmCompositionText() { 211 void InputMethodGtk::ConfirmCompositionText() {
212 ui::TextInputClient* client = GetTextInputClient(); 212 TextInputClient* client = GetTextInputClient();
213 if (client && client->HasCompositionText()) 213 if (client && client->HasCompositionText())
214 client->ConfirmCompositionText(); 214 client->ConfirmCompositionText();
215 215
216 ResetContext(); 216 ResetContext();
217 } 217 }
218 218
219 void InputMethodGtk::ResetContext() { 219 void InputMethodGtk::ResetContext() {
220 if (!GetTextInputClient()) 220 if (!GetTextInputClient())
221 return; 221 return;
222 222
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 // change. 290 // change.
291 if (old_focused_view != GetFocusedView()) 291 if (old_focused_view != GetFocusedView())
292 return; 292 return;
293 293
294 // If a key event was not filtered by |context_| or |context_simple_|, then 294 // If a key event was not filtered by |context_| or |context_simple_|, then
295 // it means the key event didn't generate any result text. For some cases, 295 // it means the key event didn't generate any result text. For some cases,
296 // the key event may still generate a valid character, eg. a control-key 296 // the key event may still generate a valid character, eg. a control-key
297 // event (ctrl-a, return, tab, etc.). We need to send the character to the 297 // event (ctrl-a, return, tab, etc.). We need to send the character to the
298 // focused text input client by calling TextInputClient::InsertChar(). 298 // focused text input client by calling TextInputClient::InsertChar().
299 char16 ch = key.GetCharacter(); 299 char16 ch = key.GetCharacter();
300 ui::TextInputClient* client = GetTextInputClient(); 300 TextInputClient* client = GetTextInputClient();
301 if (ch && client) 301 if (ch && client)
302 client->InsertChar(ch, key.flags()); 302 client->InsertChar(ch, key.flags());
303 } 303 }
304 304
305 void InputMethodGtk::ProcessInputMethodResult(const KeyEvent& key, 305 void InputMethodGtk::ProcessInputMethodResult(const KeyEvent& key,
306 bool filtered) { 306 bool filtered) {
307 ui::TextInputClient* client = GetTextInputClient(); 307 TextInputClient* client = GetTextInputClient();
308 DCHECK(client); 308 DCHECK(client);
309 309
310 if (result_text_.length()) { 310 if (result_text_.length()) {
311 if (filtered && NeedInsertChar()) { 311 if (filtered && NeedInsertChar()) {
312 for (string16::const_iterator i = result_text_.begin(); 312 for (string16::const_iterator i = result_text_.begin();
313 i != result_text_.end(); ++i) { 313 i != result_text_.end(); ++i) {
314 client->InsertChar(*i, key.flags()); 314 client->InsertChar(*i, key.flags());
315 } 315 }
316 } else { 316 } else {
317 client->InsertText(result_text_); 317 client->InsertText(result_text_);
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
420 } 420 }
421 421
422 void InputMethodGtk::OnPreeditEnd(GtkIMContext* context) { 422 void InputMethodGtk::OnPreeditEnd(GtkIMContext* context) {
423 if (composition_.text.empty() || IsTextInputTypeNone()) 423 if (composition_.text.empty() || IsTextInputTypeNone())
424 return; 424 return;
425 425
426 composition_changed_ = true; 426 composition_changed_ = true;
427 composition_.Clear(); 427 composition_.Clear();
428 428
429 if (!handling_key_event_) { 429 if (!handling_key_event_) {
430 ui::TextInputClient* client = GetTextInputClient(); 430 TextInputClient* client = GetTextInputClient();
431 if (client && client->HasCompositionText()) 431 if (client && client->HasCompositionText())
432 client->ClearCompositionText(); 432 client->ClearCompositionText();
433 } 433 }
434 } 434 }
435 435
436 void InputMethodGtk::OnWidgetRealize(GtkWidget* widget) { 436 void InputMethodGtk::OnWidgetRealize(GtkWidget* widget) {
437 // We should only set im context's client window once, because when setting 437 // We should only set im context's client window once, because when setting
438 // client window, im context may destroy and recreate its internal states and 438 // client window, im context may destroy and recreate its internal states and
439 // objects. 439 // objects.
440 if (widget->window) { 440 if (widget->window) {
441 gtk_im_context_set_client_window(context_, widget->window); 441 gtk_im_context_set_client_window(context_, widget->window);
442 gtk_im_context_set_client_window(context_simple_, widget->window); 442 gtk_im_context_set_client_window(context_simple_, widget->window);
443 } 443 }
444 } 444 }
445 445
446 void InputMethodGtk::OnWidgetUnrealize(GtkWidget* widget) { 446 void InputMethodGtk::OnWidgetUnrealize(GtkWidget* widget) {
447 gtk_im_context_set_client_window(context_, NULL); 447 gtk_im_context_set_client_window(context_, NULL);
448 gtk_im_context_set_client_window(context_simple_, NULL); 448 gtk_im_context_set_client_window(context_simple_, NULL);
449 } 449 }
450 450
451 } // namespace views 451 } // namespace views
OLDNEW
« no previous file with comments | « views/ime/input_method_gtk.h ('k') | views/ime/input_method_ibus.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698