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

Unified Diff: content/renderer/render_widget.cc

Issue 29943002: Limit display of the virtual keyboard to state changes triggered from a user gesture. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix ash_unittests Created 6 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/renderer/render_widget.h ('k') | ui/base/ime/dummy_input_method.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/render_widget.cc
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index 7d8700f3dd79e9694600ecfbbf7af48cb7e8506e..7fee77936fe9910d96a801d58c302dda87909b9e 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -1198,6 +1198,12 @@ void RenderWidget::OnHandleInputEvent(const blink::WebInputEvent* input_event,
// of a processed touch end event.
if (input_event->type == WebInputEvent::TouchEnd && processed)
UpdateTextInputState(true, true);
+#elif defined(USE_AURA)
+ // Show the virtual keyboard if enabled and a user gesture triggers a focus
+ // change.
+ if (processed && (input_event->type == WebInputEvent::TouchEnd ||
+ input_event->type == WebInputEvent::MouseUp))
+ UpdateTextInputState(true, false);
#endif
TRACE_EVENT_SYNTHETIC_DELAY_END("blink.HandleInputEvent");
@@ -2503,7 +2509,7 @@ void RenderWidget::UpdateTextInputType() {
}
}
-#if defined(OS_ANDROID)
+#if defined(OS_ANDROID) || defined(USE_AURA)
void RenderWidget::UpdateTextInputState(bool show_ime_if_needed,
bool send_ime_ack) {
if (handling_ime_event_)
@@ -2526,6 +2532,9 @@ void RenderWidget::UpdateTextInputState(bool show_ime_if_needed,
|| text_input_info_ != new_info
|| can_compose_inline_ != new_can_compose_inline)) {
ViewHostMsg_TextInputState_Params p;
+#if defined(USE_AURA)
+ p.require_ack = false;
+#endif
p.type = new_type;
p.value = new_info.value.utf8();
p.selection_start = new_info.selectionStart;
@@ -2534,9 +2543,11 @@ void RenderWidget::UpdateTextInputState(bool show_ime_if_needed,
p.composition_end = new_info.compositionEnd;
p.can_compose_inline = new_can_compose_inline;
p.show_ime_if_needed = show_ime_if_needed;
+#if defined(OS_ANDROID)
p.require_ack = send_ime_ack;
if (p.require_ack)
IncrementOutstandingImeEventAcks();
+#endif
Send(new ViewHostMsg_TextInputStateChanged(routing_id(), p));
text_input_info_ = new_info;
@@ -2712,7 +2723,7 @@ void RenderWidget::resetInputMethod() {
void RenderWidget::didHandleGestureEvent(
const WebGestureEvent& event,
bool event_cancelled) {
-#if defined(OS_ANDROID)
+#if defined(OS_ANDROID) || defined(USE_AURA)
if (event_cancelled)
return;
if (event.type == WebInputEvent::GestureTap ||
« no previous file with comments | « content/renderer/render_widget.h ('k') | ui/base/ime/dummy_input_method.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698