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

Side by Side Diff: content/renderer/render_widget.cc

Issue 1995333002: Handle newCursorPosition correctly for Android's commitText() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: For compile error. Created 4 years, 3 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
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 "content/renderer/render_widget.h" 5 #include "content/renderer/render_widget.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 1361 matching lines...) Expand 10 before | Expand all | Expand 10 after
1372 // If we failed to set the composition text, then we need to let the browser 1372 // If we failed to set the composition text, then we need to let the browser
1373 // process to cancel the input method's ongoing composition session, to make 1373 // process to cancel the input method's ongoing composition session, to make
1374 // sure we are in a consistent state. 1374 // sure we are in a consistent state.
1375 Send(new InputHostMsg_ImeCancelComposition(routing_id())); 1375 Send(new InputHostMsg_ImeCancelComposition(routing_id()));
1376 } 1376 }
1377 UpdateCompositionInfo(false /* not an immediate request */); 1377 UpdateCompositionInfo(false /* not an immediate request */);
1378 } 1378 }
1379 1379
1380 void RenderWidget::OnImeConfirmComposition(const base::string16& text, 1380 void RenderWidget::OnImeConfirmComposition(const base::string16& text,
1381 const gfx::Range& replacement_range, 1381 const gfx::Range& replacement_range,
1382 bool keep_selection) { 1382 bool keep_selection,
1383 int relative_cursor_pos) {
1383 #if defined(ENABLE_PLUGINS) 1384 #if defined(ENABLE_PLUGINS)
1384 if (focused_pepper_plugin_) { 1385 if (focused_pepper_plugin_) {
1385 focused_pepper_plugin_->render_frame()->OnImeConfirmComposition( 1386 focused_pepper_plugin_->render_frame()->OnImeConfirmComposition(
1386 text, replacement_range, keep_selection); 1387 text, replacement_range, keep_selection, relative_cursor_pos);
1387 return; 1388 return;
1388 } 1389 }
1389 #endif 1390 #endif
1390 if (replacement_range.IsValid()) { 1391 if (replacement_range.IsValid()) {
1391 webwidget_->applyReplacementRange(replacement_range.start(), 1392 webwidget_->applyReplacementRange(replacement_range.start(),
1392 replacement_range.length()); 1393 replacement_range.length());
1393 } 1394 }
1394 1395
1395 if (!ShouldHandleImeEvent()) 1396 if (!ShouldHandleImeEvent())
1396 return; 1397 return;
1397 ImeEventGuard guard(this); 1398 ImeEventGuard guard(this);
1398 input_handler_->set_handling_input_event(true); 1399 input_handler_->set_handling_input_event(true);
1399 if (text.length()) 1400 if (text.length())
1400 webwidget_->confirmComposition(text); 1401 webwidget_->confirmComposition(text, relative_cursor_pos);
1401 else if (keep_selection) 1402 else if (keep_selection)
1402 webwidget_->confirmComposition(WebWidget::KeepSelection); 1403 webwidget_->confirmComposition(WebWidget::KeepSelection);
1403 else 1404 else
1404 webwidget_->confirmComposition(WebWidget::DoNotKeepSelection); 1405 webwidget_->confirmComposition(WebWidget::DoNotKeepSelection);
1405 input_handler_->set_handling_input_event(false); 1406 input_handler_->set_handling_input_event(false);
1406 UpdateCompositionInfo(false /* not an immediate request */); 1407 UpdateCompositionInfo(false /* not an immediate request */);
1407 } 1408 }
1408 1409
1409 void RenderWidget::OnDeviceScaleFactorChanged() { 1410 void RenderWidget::OnDeviceScaleFactorChanged() {
1410 if (!compositor_) 1411 if (!compositor_)
(...skipping 655 matching lines...) Expand 10 before | Expand all | Expand 10 after
2066 void RenderWidget::requestPointerUnlock() { 2067 void RenderWidget::requestPointerUnlock() {
2067 mouse_lock_dispatcher_->UnlockMouse(webwidget_mouse_lock_target_.get()); 2068 mouse_lock_dispatcher_->UnlockMouse(webwidget_mouse_lock_target_.get());
2068 } 2069 }
2069 2070
2070 bool RenderWidget::isPointerLocked() { 2071 bool RenderWidget::isPointerLocked() {
2071 return mouse_lock_dispatcher_->IsMouseLockedTo( 2072 return mouse_lock_dispatcher_->IsMouseLockedTo(
2072 webwidget_mouse_lock_target_.get()); 2073 webwidget_mouse_lock_target_.get());
2073 } 2074 }
2074 2075
2075 } // namespace content 2076 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698