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/renderer/render_widget.h" | 5 #include "content/renderer/render_widget.h" |
6 | 6 |
7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 1026 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1037 } | 1037 } |
1038 | 1038 |
1039 void RenderWidget::OnSwapBuffersComplete() { | 1039 void RenderWidget::OnSwapBuffersComplete() { |
1040 TRACE_EVENT0("renderer", "RenderWidget::OnSwapBuffersComplete"); | 1040 TRACE_EVENT0("renderer", "RenderWidget::OnSwapBuffersComplete"); |
1041 | 1041 |
1042 // Notify subclasses that composited rendering was flushed to the screen. | 1042 // Notify subclasses that composited rendering was flushed to the screen. |
1043 DidFlushPaint(); | 1043 DidFlushPaint(); |
1044 } | 1044 } |
1045 | 1045 |
1046 void RenderWidget::OnHandleInputEvent(const blink::WebInputEvent* input_event, | 1046 void RenderWidget::OnHandleInputEvent(const blink::WebInputEvent* input_event, |
1047 const ui::LatencyInfo& latency_info, | 1047 const ui::LatencyInfo& latency_info) { |
1048 bool is_keyboard_shortcut) { | |
1049 if (!input_event) | 1048 if (!input_event) |
1050 return; | 1049 return; |
1051 base::AutoReset<bool> handling_input_event_resetter(&handling_input_event_, | 1050 base::AutoReset<bool> handling_input_event_resetter(&handling_input_event_, |
1052 true); | 1051 true); |
1053 base::AutoReset<WebInputEvent::Type> handling_event_type_resetter( | 1052 base::AutoReset<WebInputEvent::Type> handling_event_type_resetter( |
1054 &handling_event_type_, input_event->type); | 1053 &handling_event_type_, input_event->type); |
1055 | 1054 |
1056 // Calls into |didOverscroll()| while handling this event will populate | 1055 // Calls into |didOverscroll()| while handling this event will populate |
1057 // |event_overscroll|, which in turn will be bundled with the event ack. | 1056 // |event_overscroll|, which in turn will be bundled with the event ack. |
1058 scoped_ptr<DidOverscrollParams> event_overscroll; | 1057 scoped_ptr<DidOverscrollParams> event_overscroll; |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1150 bool processed = prevent_default; | 1149 bool processed = prevent_default; |
1151 if (input_event->type != WebInputEvent::Char || !suppress_next_char_events_) { | 1150 if (input_event->type != WebInputEvent::Char || !suppress_next_char_events_) { |
1152 suppress_next_char_events_ = false; | 1151 suppress_next_char_events_ = false; |
1153 if (!processed && webwidget_) | 1152 if (!processed && webwidget_) |
1154 processed = webwidget_->handleInputEvent(*input_event); | 1153 processed = webwidget_->handleInputEvent(*input_event); |
1155 } | 1154 } |
1156 | 1155 |
1157 // If this RawKeyDown event corresponds to a browser keyboard shortcut and | 1156 // If this RawKeyDown event corresponds to a browser keyboard shortcut and |
1158 // it's not processed by webkit, then we need to suppress the upcoming Char | 1157 // it's not processed by webkit, then we need to suppress the upcoming Char |
1159 // events. | 1158 // events. |
| 1159 bool is_keyboard_shortcut = |
| 1160 input_event->type == WebInputEvent::RawKeyDown && |
| 1161 static_cast<const WebKeyboardEvent*>(input_event)->isBrowserShortcut; |
1160 if (!processed && is_keyboard_shortcut) | 1162 if (!processed && is_keyboard_shortcut) |
1161 suppress_next_char_events_ = true; | 1163 suppress_next_char_events_ = true; |
1162 | 1164 |
1163 InputEventAckState ack_result = processed ? | 1165 InputEventAckState ack_result = processed ? |
1164 INPUT_EVENT_ACK_STATE_CONSUMED : INPUT_EVENT_ACK_STATE_NOT_CONSUMED; | 1166 INPUT_EVENT_ACK_STATE_CONSUMED : INPUT_EVENT_ACK_STATE_NOT_CONSUMED; |
1165 if (!processed && input_event->type == WebInputEvent::TouchStart) { | 1167 if (!processed && input_event->type == WebInputEvent::TouchStart) { |
1166 const WebTouchEvent& touch_event = | 1168 const WebTouchEvent& touch_event = |
1167 *static_cast<const WebTouchEvent*>(input_event); | 1169 *static_cast<const WebTouchEvent*>(input_event); |
1168 // Hit-test for all the pressed touch points. If there is a touch-handler | 1170 // Hit-test for all the pressed touch points. If there is a touch-handler |
1169 // for any of the touch points, then the renderer should continue to receive | 1171 // for any of the touch points, then the renderer should continue to receive |
(...skipping 1209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2379 void RenderWidget::RegisterVideoHoleFrame(RenderFrameImpl* frame) { | 2381 void RenderWidget::RegisterVideoHoleFrame(RenderFrameImpl* frame) { |
2380 video_hole_frames_.AddObserver(frame); | 2382 video_hole_frames_.AddObserver(frame); |
2381 } | 2383 } |
2382 | 2384 |
2383 void RenderWidget::UnregisterVideoHoleFrame(RenderFrameImpl* frame) { | 2385 void RenderWidget::UnregisterVideoHoleFrame(RenderFrameImpl* frame) { |
2384 video_hole_frames_.RemoveObserver(frame); | 2386 video_hole_frames_.RemoveObserver(frame); |
2385 } | 2387 } |
2386 #endif // defined(VIDEO_HOLE) | 2388 #endif // defined(VIDEO_HOLE) |
2387 | 2389 |
2388 } // namespace content | 2390 } // namespace content |
OLD | NEW |