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

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

Powered by Google App Engine
This is Rietveld 408576698