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

Unified Diff: third_party/WebKit/Source/platform/WebPointerEvent.cpp

Issue 2973963003: Release mouse pointer capture when it starts drag (Closed)
Patch Set: Created 3 years, 5 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
Index: third_party/WebKit/Source/platform/WebPointerEvent.cpp
diff --git a/third_party/WebKit/Source/platform/WebPointerEvent.cpp b/third_party/WebKit/Source/platform/WebPointerEvent.cpp
index 21158c0b3658d464729ebae0b2b26a3cb693995b..f63d23210c1512ac31a7b3e7aef9b037015c4887 100644
--- a/third_party/WebKit/Source/platform/WebPointerEvent.cpp
+++ b/third_party/WebKit/Source/platform/WebPointerEvent.cpp
@@ -10,6 +10,23 @@ namespace blink {
namespace {
+WebInputEvent::Type PointerEventTypeForMouseEventType(WebInputEvent::Type type,
+ bool is_cancel) {
+ if (is_cancel)
+ return WebInputEvent::Type::kPointerCancel;
+ switch (type) {
+ case WebInputEvent::Type::kMouseDown:
+ return WebInputEvent::Type::kPointerDown;
+ case WebInputEvent::Type::kMouseUp:
+ return WebInputEvent::Type::kPointerUp;
+ case WebInputEvent::Type::kMouseMove:
+ return WebInputEvent::Type::kPointerMove;
+ default:
+ NOTREACHED();
+ return WebInputEvent::Type::kUndefined;
+ }
+}
+
WebInputEvent::Type PointerEventTypeForTouchPointState(
WebTouchPoint::State state) {
switch (state) {
@@ -27,6 +44,7 @@ WebInputEvent::Type PointerEventTypeForTouchPointState(
return WebInputEvent::Type::kUndefined;
}
}
+
} // namespace
WebPointerEvent::WebPointerEvent(const WebTouchEvent& touch_event,
@@ -50,6 +68,19 @@ WebPointerEvent::WebPointerEvent(const WebTouchEvent& touch_event,
rotation_angle = touch_point.rotation_angle;
}
+WebPointerEvent::WebPointerEvent(const WebMouseEvent& mouse_event,
+ bool is_cancel)
+ : WebInputEvent(sizeof(WebPointerEvent)),
+ WebPointerProperties(mouse_event),
+ width(1),
+ height(1) {
+ SetFrameScale(mouse_event.FrameScale());
+ SetFrameTranslate(mouse_event.FrameTranslate());
+ SetTimeStampSeconds(mouse_event.TimeStampSeconds());
+ SetType(PointerEventTypeForMouseEventType(mouse_event.GetType(), is_cancel));
+ SetModifiers(mouse_event.GetModifiers());
+}
+
WebPointerEvent WebPointerEvent::WebPointerEventInRootFrame() const {
WebPointerEvent transformed_event = *this;
transformed_event.width /= frame_scale_;

Powered by Google App Engine
This is Rietveld 408576698