| Index: third_party/WebKit/public/platform/WebMouseEvent.h
|
| diff --git a/third_party/WebKit/public/platform/WebMouseEvent.h b/third_party/WebKit/public/platform/WebMouseEvent.h
|
| index fee8a2572fe5cd5faf5746d128e2b097a15ad115..26ab12a0d66a0fc3118d5f507aab3421f9c16bc3 100644
|
| --- a/third_party/WebKit/public/platform/WebMouseEvent.h
|
| +++ b/third_party/WebKit/public/platform/WebMouseEvent.h
|
| @@ -16,18 +16,11 @@ class WebGestureEvent;
|
|
|
| // WebMouseEvent --------------------------------------------------------------
|
|
|
| +// TODO(mustaq): We are truncating |float|s to integers whenever setting
|
| +// coordinate values, to avoid regressions for now. Will be fixed later
|
| +// on. crbug.com/456625
|
| class WebMouseEvent : public WebInputEvent, public WebPointerProperties {
|
| public:
|
| - // Renderer coordinates. Similar to viewport coordinates but without
|
| - // DevTools emulation transform or overscroll applied. i.e. the coordinates
|
| - // in Chromium's RenderView bounds.
|
| - int x;
|
| - int y;
|
| -
|
| - // Screen coordinate
|
| - int globalX;
|
| - int globalY;
|
| -
|
| int clickCount;
|
|
|
| WebMouseEvent(Type typeParam,
|
| @@ -42,10 +35,8 @@ class WebMouseEvent : public WebInputEvent, public WebPointerProperties {
|
| modifiersParam,
|
| timeStampSecondsParam),
|
| WebPointerProperties(),
|
| - x(xParam),
|
| - y(yParam),
|
| - globalX(globalXParam),
|
| - globalY(globalYParam) {}
|
| + m_positionInWidget(xParam, yParam),
|
| + m_positionInScreen(globalXParam, globalYParam) {}
|
|
|
| WebMouseEvent(Type typeParam,
|
| WebFloatPoint position,
|
| @@ -59,11 +50,9 @@ class WebMouseEvent : public WebInputEvent, public WebPointerProperties {
|
| modifiersParam,
|
| timeStampSecondsParam),
|
| WebPointerProperties(buttonParam, PointerType::Mouse),
|
| - x(position.x),
|
| - y(position.y),
|
| - globalX(globalPosition.x),
|
| - globalY(globalPosition.y),
|
| - clickCount(clickCountParam) {}
|
| + clickCount(clickCountParam),
|
| + m_positionInWidget(floor(position.x), floor(position.y)),
|
| + m_positionInScreen(floor(globalPosition.x), floor(globalPosition.y)) {}
|
|
|
| WebMouseEvent(Type typeParam,
|
| int modifiersParam,
|
| @@ -95,6 +84,16 @@ class WebMouseEvent : public WebInputEvent, public WebPointerProperties {
|
| BLINK_PLATFORM_EXPORT WebMouseEvent flattenTransform() const;
|
| #endif
|
|
|
| + WebFloatPoint positionInWidget() const { return m_positionInWidget; }
|
| + void setPositionInWidget(float x, float y) {
|
| + m_positionInWidget = WebFloatPoint(floor(x), floor(y));
|
| + }
|
| +
|
| + WebFloatPoint positionInScreen() const { return m_positionInScreen; }
|
| + void setPositionInScreen(float x, float y) {
|
| + m_positionInScreen = WebFloatPoint(floor(x), floor(y));
|
| + }
|
| +
|
| protected:
|
| explicit WebMouseEvent(unsigned sizeParam)
|
| : WebInputEvent(sizeParam), WebPointerProperties() {}
|
| @@ -107,6 +106,15 @@ class WebMouseEvent : public WebInputEvent, public WebPointerProperties {
|
| WebPointerProperties() {}
|
|
|
| void flattenTransformSelf();
|
| +
|
| + private:
|
| + // Widget coordinate, which is relative to the bound of current RenderWidget
|
| + // (e.g. a plugin or OOPIF inside a RenderView). Similar to viewport
|
| + // coordinates but without DevTools emulation transform or overscroll applied.
|
| + WebFloatPoint m_positionInWidget;
|
| +
|
| + // Screen coordinate
|
| + WebFloatPoint m_positionInScreen;
|
| };
|
|
|
| #pragma pack(pop)
|
|
|