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_win.h" | 5 #include "content/browser/renderer_host/render_widget_host_view_win.h" |
6 | 6 |
7 #include <dwmapi.h> | 7 #include <dwmapi.h> |
8 #include <InputScope.h> | 8 #include <InputScope.h> |
9 #include <wtsapi32.h> | 9 #include <wtsapi32.h> |
10 #pragma comment(lib, "wtsapi32.lib") | 10 #pragma comment(lib, "wtsapi32.lib") |
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
402 is_loading_(false), | 402 is_loading_(false), |
403 text_input_type_(ui::TEXT_INPUT_TYPE_NONE), | 403 text_input_type_(ui::TEXT_INPUT_TYPE_NONE), |
404 can_compose_inline_(true), | 404 can_compose_inline_(true), |
405 is_fullscreen_(false), | 405 is_fullscreen_(false), |
406 ignore_mouse_movement_(true), | 406 ignore_mouse_movement_(true), |
407 composition_range_(ui::Range::InvalidRange()), | 407 composition_range_(ui::Range::InvalidRange()), |
408 touch_state_(new WebTouchState(this)), | 408 touch_state_(new WebTouchState(this)), |
409 pointer_down_context_(false), | 409 pointer_down_context_(false), |
410 last_touch_location_(-1, -1), | 410 last_touch_location_(-1, -1), |
411 touch_events_enabled_(false), | 411 touch_events_enabled_(false), |
412 gesture_recognizer_(ui::GestureRecognizer::Create(this)) { | 412 gesture_recognizer_(ui::GestureRecognizer::Create(this)), |
| 413 in_long_press_gesture_(false) { |
413 render_widget_host_->SetView(this); | 414 render_widget_host_->SetView(this); |
414 registrar_.Add(this, | 415 registrar_.Add(this, |
415 NOTIFICATION_RENDERER_PROCESS_TERMINATED, | 416 NOTIFICATION_RENDERER_PROCESS_TERMINATED, |
416 NotificationService::AllBrowserContextsAndSources()); | 417 NotificationService::AllBrowserContextsAndSources()); |
417 } | 418 } |
418 | 419 |
419 RenderWidgetHostViewWin::~RenderWidgetHostViewWin() { | 420 RenderWidgetHostViewWin::~RenderWidgetHostViewWin() { |
420 UnlockMouse(); | 421 UnlockMouse(); |
421 ResetTooltip(); | 422 ResetTooltip(); |
422 } | 423 } |
(...skipping 1317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1740 handled = FALSE; | 1741 handled = FALSE; |
1741 return 0; | 1742 return 0; |
1742 } | 1743 } |
1743 } | 1744 } |
1744 | 1745 |
1745 LRESULT RenderWidgetHostViewWin::OnMouseEvent(UINT message, WPARAM wparam, | 1746 LRESULT RenderWidgetHostViewWin::OnMouseEvent(UINT message, WPARAM wparam, |
1746 LPARAM lparam, BOOL& handled) { | 1747 LPARAM lparam, BOOL& handled) { |
1747 TRACE_EVENT0("browser", "RenderWidgetHostViewWin::OnMouseEvent"); | 1748 TRACE_EVENT0("browser", "RenderWidgetHostViewWin::OnMouseEvent"); |
1748 handled = TRUE; | 1749 handled = TRUE; |
1749 | 1750 |
| 1751 // Invalidate the long press gesture once mouse up event is received. |
| 1752 // On Windows 8, a mouse up event gets triggered once a touch point is |
| 1753 // removed from screen. |
| 1754 if (message == WM_RBUTTONUP) |
| 1755 in_long_press_gesture_ = false; |
| 1756 |
1750 if (message == WM_MOUSELEAVE) | 1757 if (message == WM_MOUSELEAVE) |
1751 ignore_mouse_movement_ = true; | 1758 ignore_mouse_movement_ = true; |
1752 | 1759 |
1753 if (mouse_locked_) { | 1760 if (mouse_locked_) { |
1754 HandleLockedMouseEvent(message, wparam, lparam); | 1761 HandleLockedMouseEvent(message, wparam, lparam); |
1755 MoveCursorToCenterIfNecessary(); | 1762 MoveCursorToCenterIfNecessary(); |
1756 return 0; | 1763 return 0; |
1757 } | 1764 } |
1758 | 1765 |
1759 if (::IsWindow(tooltip_hwnd_)) { | 1766 if (::IsWindow(tooltip_hwnd_)) { |
(...skipping 1054 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2814 } | 2821 } |
2815 | 2822 |
2816 WebKit::WebGestureEvent web_gesture = CreateWebGestureEvent(m_hWnd, *gesture); | 2823 WebKit::WebGestureEvent web_gesture = CreateWebGestureEvent(m_hWnd, *gesture); |
2817 if (web_gesture.type == WebKit::WebGestureEvent::Undefined) | 2824 if (web_gesture.type == WebKit::WebGestureEvent::Undefined) |
2818 return false; | 2825 return false; |
2819 if (web_gesture.type == WebKit::WebGestureEvent::GestureTapDown) { | 2826 if (web_gesture.type == WebKit::WebGestureEvent::GestureTapDown) { |
2820 render_widget_host_->ForwardGestureEvent( | 2827 render_widget_host_->ForwardGestureEvent( |
2821 CreateFlingCancelEvent(gesture->time_stamp().InSecondsF())); | 2828 CreateFlingCancelEvent(gesture->time_stamp().InSecondsF())); |
2822 } | 2829 } |
2823 render_widget_host_->ForwardGestureEvent(web_gesture); | 2830 render_widget_host_->ForwardGestureEvent(web_gesture); |
| 2831 |
| 2832 if (web_gesture.type == WebKit::WebGestureEvent::GestureLongPress) |
| 2833 in_long_press_gesture_ = true; |
| 2834 |
2824 return true; | 2835 return true; |
2825 } | 2836 } |
2826 | 2837 |
2827 void RenderWidgetHostViewWin::ForwardMouseEventToRenderer(UINT message, | 2838 void RenderWidgetHostViewWin::ForwardMouseEventToRenderer(UINT message, |
2828 WPARAM wparam, | 2839 WPARAM wparam, |
2829 LPARAM lparam) { | 2840 LPARAM lparam) { |
2830 TRACE_EVENT0("browser", | 2841 TRACE_EVENT0("browser", |
2831 "RenderWidgetHostViewWin::ForwardMouseEventToRenderer"); | 2842 "RenderWidgetHostViewWin::ForwardMouseEventToRenderer"); |
2832 if (!render_widget_host_) { | 2843 if (!render_widget_host_) { |
2833 TRACE_EVENT0("browser", "EarlyOut_NoRWH"); | 2844 TRACE_EVENT0("browser", "EarlyOut_NoRWH"); |
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3137 return new RenderWidgetHostViewWin(widget); | 3148 return new RenderWidgetHostViewWin(widget); |
3138 } | 3149 } |
3139 | 3150 |
3140 // static | 3151 // static |
3141 void RenderWidgetHostViewPort::GetDefaultScreenInfo( | 3152 void RenderWidgetHostViewPort::GetDefaultScreenInfo( |
3142 WebKit::WebScreenInfo* results) { | 3153 WebKit::WebScreenInfo* results) { |
3143 GetScreenInfoForWindow(results, 0); | 3154 GetScreenInfoForWindow(results, 0); |
3144 } | 3155 } |
3145 | 3156 |
3146 } // namespace content | 3157 } // namespace content |
OLD | NEW |