OLD | NEW |
---|---|
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/browser/renderer_host/render_widget_host_view_aura.h" | 5 #include "content/browser/renderer_host/render_widget_host_view_aura.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
(...skipping 2571 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2582 } | 2582 } |
2583 | 2583 |
2584 switch (event->type()) { | 2584 switch (event->type()) { |
2585 case ui::ET_MOUSE_PRESSED: | 2585 case ui::ET_MOUSE_PRESSED: |
2586 window_->SetCapture(); | 2586 window_->SetCapture(); |
2587 // Confirm existing composition text on mouse click events, to make sure | 2587 // Confirm existing composition text on mouse click events, to make sure |
2588 // the input caret won't be moved with an ongoing composition text. | 2588 // the input caret won't be moved with an ongoing composition text. |
2589 FinishImeCompositionSession(); | 2589 FinishImeCompositionSession(); |
2590 break; | 2590 break; |
2591 case ui::ET_MOUSE_RELEASED: | 2591 case ui::ET_MOUSE_RELEASED: |
2592 // The input method needs to know if an already-focused text field was | |
2593 // clicked again (refocused). | |
2594 GetInputMethod()->OnPossibleRefocus(); | |
2595 | |
SteveT
2013/07/31 03:19:18
Handling "refocus" here and below.
Seigo Nonaka
2013/08/07 08:41:18
Hmm, this might work for many cases but I think th
SteveT
2013/08/07 12:26:39
Just Omnibox, or every other native textbox, like
| |
2592 window_->ReleaseCapture(); | 2596 window_->ReleaseCapture(); |
2593 break; | 2597 break; |
2594 default: | 2598 default: |
2595 break; | 2599 break; |
2596 } | 2600 } |
2597 | 2601 |
2598 // Needed to propagate mouse event to native_tab_contents_view_aura. | 2602 // Needed to propagate mouse event to native_tab_contents_view_aura. |
2599 // TODO(pkotwicz): Find a better way of doing this. | 2603 // TODO(pkotwicz): Find a better way of doing this. |
2600 // In fullscreen mode which is typically used by flash, don't forward | 2604 // In fullscreen mode which is typically used by flash, don't forward |
2601 // the mouse events to the parent. The renderer and the plugin process | 2605 // the mouse events to the parent. The renderer and the plugin process |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2633 } | 2637 } |
2634 | 2638 |
2635 event->SetHandled(); | 2639 event->SetHandled(); |
2636 } | 2640 } |
2637 | 2641 |
2638 void RenderWidgetHostViewAura::OnTouchEvent(ui::TouchEvent* event) { | 2642 void RenderWidgetHostViewAura::OnTouchEvent(ui::TouchEvent* event) { |
2639 TRACE_EVENT0("input", "RenderWidgetHostViewAura::OnTouchEvent"); | 2643 TRACE_EVENT0("input", "RenderWidgetHostViewAura::OnTouchEvent"); |
2640 if (touch_editing_client_ && touch_editing_client_->HandleInputEvent(event)) | 2644 if (touch_editing_client_ && touch_editing_client_->HandleInputEvent(event)) |
2641 return; | 2645 return; |
2642 | 2646 |
2647 if (event->type() == ui::ET_TOUCH_RELEASED) | |
2648 GetInputMethod()->OnPossibleRefocus(); | |
2649 | |
2643 // Update the touch event first. | 2650 // Update the touch event first. |
2644 WebKit::WebTouchPoint* point = UpdateWebTouchEventFromUIEvent(*event, | 2651 WebKit::WebTouchPoint* point = UpdateWebTouchEventFromUIEvent(*event, |
2645 &touch_event_); | 2652 &touch_event_); |
2646 | 2653 |
2647 // Forward the touch event only if a touch point was updated, and there's a | 2654 // Forward the touch event only if a touch point was updated, and there's a |
2648 // touch-event handler in the page, and no other touch-event is in the queue. | 2655 // touch-event handler in the page, and no other touch-event is in the queue. |
2649 // It is important to always consume the event if there is a touch-event | 2656 // It is important to always consume the event if there is a touch-event |
2650 // handler in the page, or some touch-event is already in the queue, even if | 2657 // handler in the page, or some touch-event is already in the queue, even if |
2651 // no point has been updated, to make sure that this event does not get | 2658 // no point has been updated, to make sure that this event does not get |
2652 // processed by the gesture recognizer before the events in the queue. | 2659 // processed by the gesture recognizer before the events in the queue. |
(...skipping 515 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3168 RenderWidgetHost* widget) { | 3175 RenderWidgetHost* widget) { |
3169 return new RenderWidgetHostViewAura(widget); | 3176 return new RenderWidgetHostViewAura(widget); |
3170 } | 3177 } |
3171 | 3178 |
3172 // static | 3179 // static |
3173 void RenderWidgetHostViewPort::GetDefaultScreenInfo(WebScreenInfo* results) { | 3180 void RenderWidgetHostViewPort::GetDefaultScreenInfo(WebScreenInfo* results) { |
3174 GetScreenInfoForWindow(results, NULL); | 3181 GetScreenInfoForWindow(results, NULL); |
3175 } | 3182 } |
3176 | 3183 |
3177 } // namespace content | 3184 } // namespace content |
OLD | NEW |