| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 static_assert(PlatformEvent::DispatchType::ListenersNonBlockingPassive == st
atic_cast<PlatformEvent::DispatchType>(WebInputEvent::DispatchType::ListenersNon
BlockingPassive), | 99 static_assert(PlatformEvent::DispatchType::ListenersNonBlockingPassive == st
atic_cast<PlatformEvent::DispatchType>(WebInputEvent::DispatchType::ListenersNon
BlockingPassive), |
| 100 "Dispatch Types not equal"); | 100 "Dispatch Types not equal"); |
| 101 static_assert(PlatformEvent::DispatchType::ListenersForcedNonBlockingPassive
== static_cast<PlatformEvent::DispatchType>(WebInputEvent::DispatchType::Listen
ersForcedNonBlockingPassive), | 101 static_assert(PlatformEvent::DispatchType::ListenersForcedNonBlockingPassive
== static_cast<PlatformEvent::DispatchType>(WebInputEvent::DispatchType::Listen
ersForcedNonBlockingPassive), |
| 102 "Dispatch Types not equal"); | 102 "Dispatch Types not equal"); |
| 103 | 103 |
| 104 return static_cast<PlatformEvent::DispatchType>(type); | 104 return static_cast<PlatformEvent::DispatchType>(type); |
| 105 } | 105 } |
| 106 | 106 |
| 107 unsigned toPlatformModifierFrom(WebMouseEvent::Button button) | 107 unsigned toPlatformModifierFrom(WebMouseEvent::Button button) |
| 108 { | 108 { |
| 109 if (button == WebMouseEvent::ButtonNone) | 109 if (button == WebMouseEvent::Button::NoButton) |
| 110 return 0; | 110 return 0; |
| 111 | 111 |
| 112 unsigned webMouseButtonToPlatformModifier[] = { | 112 unsigned webMouseButtonToPlatformModifier[] = { |
| 113 PlatformEvent::LeftButtonDown, | 113 PlatformEvent::LeftButtonDown, |
| 114 PlatformEvent::MiddleButtonDown, | 114 PlatformEvent::MiddleButtonDown, |
| 115 PlatformEvent::RightButtonDown | 115 PlatformEvent::RightButtonDown |
| 116 }; | 116 }; |
| 117 | 117 |
| 118 return webMouseButtonToPlatformModifier[button]; | 118 return webMouseButtonToPlatformModifier[static_cast<int>(button)]; |
| 119 } | 119 } |
| 120 | 120 |
| 121 ScrollGranularity toPlatformScrollGranularity(WebGestureEvent::ScrollUnits units
) | 121 ScrollGranularity toPlatformScrollGranularity(WebGestureEvent::ScrollUnits units
) |
| 122 { | 122 { |
| 123 switch (units) { | 123 switch (units) { |
| 124 case WebGestureEvent::ScrollUnits::PrecisePixels: | 124 case WebGestureEvent::ScrollUnits::PrecisePixels: |
| 125 return ScrollGranularity::ScrollByPrecisePixel; | 125 return ScrollGranularity::ScrollByPrecisePixel; |
| 126 case WebGestureEvent::ScrollUnits::Pixels: | 126 case WebGestureEvent::ScrollUnits::Pixels: |
| 127 return ScrollGranularity::ScrollByPixel; | 127 return ScrollGranularity::ScrollByPixel; |
| 128 case WebGestureEvent::ScrollUnits::Page: | 128 case WebGestureEvent::ScrollUnits::Page: |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 170 // MakePlatformMouseEvent ----------------------------------------------------- | 170 // MakePlatformMouseEvent ----------------------------------------------------- |
| 171 | 171 |
| 172 // TODO(mustaq): Add tests for this. | 172 // TODO(mustaq): Add tests for this. |
| 173 PlatformMouseEventBuilder::PlatformMouseEventBuilder(Widget* widget, const WebMo
useEvent& e) | 173 PlatformMouseEventBuilder::PlatformMouseEventBuilder(Widget* widget, const WebMo
useEvent& e) |
| 174 { | 174 { |
| 175 // FIXME: Widget is always toplevel, unless it's a popup. We may be able | 175 // FIXME: Widget is always toplevel, unless it's a popup. We may be able |
| 176 // to get rid of this once we abstract popups into a WebKit API. | 176 // to get rid of this once we abstract popups into a WebKit API. |
| 177 m_position = widget->convertFromRootFrame(flooredIntPoint(convertHitPointToR
ootFrame(widget, IntPoint(e.x, e.y)))); | 177 m_position = widget->convertFromRootFrame(flooredIntPoint(convertHitPointToR
ootFrame(widget, IntPoint(e.x, e.y)))); |
| 178 m_globalPosition = IntPoint(e.globalX, e.globalY); | 178 m_globalPosition = IntPoint(e.globalX, e.globalY); |
| 179 m_movementDelta = IntPoint(scaleDeltaToWindow(widget, e.movementX), scaleDel
taToWindow(widget, e.movementY)); | 179 m_movementDelta = IntPoint(scaleDeltaToWindow(widget, e.movementX), scaleDel
taToWindow(widget, e.movementY)); |
| 180 m_button = static_cast<MouseButton>(e.button); | |
| 181 m_modifiers = e.modifiers; | 180 m_modifiers = e.modifiers; |
| 182 | 181 |
| 183 m_timestamp = e.timeStampSeconds; | 182 m_timestamp = e.timeStampSeconds; |
| 184 m_clickCount = e.clickCount; | 183 m_clickCount = e.clickCount; |
| 185 | 184 |
| 186 m_pointerProperties = static_cast<WebPointerProperties>(e); | 185 m_pointerProperties = static_cast<WebPointerProperties>(e); |
| 187 | 186 |
| 188 switch (e.type) { | 187 switch (e.type) { |
| 189 case WebInputEvent::MouseMove: | 188 case WebInputEvent::MouseMove: |
| 190 case WebInputEvent::MouseEnter: // synthesize a move event | 189 case WebInputEvent::MouseEnter: // synthesize a move event |
| (...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 536 else if (event.type() == EventTypeNames::mouseup) | 535 else if (event.type() == EventTypeNames::mouseup) |
| 537 type = WebInputEvent::MouseUp; | 536 type = WebInputEvent::MouseUp; |
| 538 else if (event.type() == EventTypeNames::contextmenu) | 537 else if (event.type() == EventTypeNames::contextmenu) |
| 539 type = WebInputEvent::ContextMenu; | 538 type = WebInputEvent::ContextMenu; |
| 540 else | 539 else |
| 541 return; // Skip all other mouse events. | 540 return; // Skip all other mouse events. |
| 542 | 541 |
| 543 updateWebMouseEventFromCoreMouseEvent(event, widget, layoutItem, *this); | 542 updateWebMouseEventFromCoreMouseEvent(event, widget, layoutItem, *this); |
| 544 | 543 |
| 545 switch (event.button()) { | 544 switch (event.button()) { |
| 546 case LeftButton: | 545 case short(WebPointerProperties::Button::Left): |
| 547 button = WebMouseEvent::ButtonLeft; | 546 button = WebMouseEvent::Button::Left; |
| 548 break; | 547 break; |
| 549 case MiddleButton: | 548 case short(WebPointerProperties::Button::Middle): |
| 550 button = WebMouseEvent::ButtonMiddle; | 549 button = WebMouseEvent::Button::Middle; |
| 551 break; | 550 break; |
| 552 case RightButton: | 551 case short(WebPointerProperties::Button::Right): |
| 553 button = WebMouseEvent::ButtonRight; | 552 button = WebMouseEvent::Button::Right; |
| 554 break; | 553 break; |
| 555 } | 554 } |
| 556 if (event.buttonDown()) { | 555 if (event.buttonDown()) { |
| 557 switch (event.button()) { | 556 switch (event.button()) { |
| 558 case LeftButton: | 557 case short(WebPointerProperties::Button::Left): |
| 559 modifiers |= WebInputEvent::LeftButtonDown; | 558 modifiers |= WebInputEvent::LeftButtonDown; |
| 560 break; | 559 break; |
| 561 case MiddleButton: | 560 case short(WebPointerProperties::Button::Middle): |
| 562 modifiers |= WebInputEvent::MiddleButtonDown; | 561 modifiers |= WebInputEvent::MiddleButtonDown; |
| 563 break; | 562 break; |
| 564 case RightButton: | 563 case short(WebPointerProperties::Button::Right): |
| 565 modifiers |= WebInputEvent::RightButtonDown; | 564 modifiers |= WebInputEvent::RightButtonDown; |
| 566 break; | 565 break; |
| 567 } | 566 } |
| 568 } else | 567 } else { |
| 569 button = WebMouseEvent::ButtonNone; | 568 button = WebMouseEvent::Button::NoButton; |
| 569 } |
| 570 movementX = event.movementX(); | 570 movementX = event.movementX(); |
| 571 movementY = event.movementY(); | 571 movementY = event.movementY(); |
| 572 clickCount = event.detail(); | 572 clickCount = event.detail(); |
| 573 | 573 |
| 574 pointerType = WebPointerProperties::PointerType::Mouse; | 574 pointerType = WebPointerProperties::PointerType::Mouse; |
| 575 } | 575 } |
| 576 | 576 |
| 577 // Generate a synthetic WebMouseEvent given a TouchEvent (eg. for emulating a mo
use | 577 // Generate a synthetic WebMouseEvent given a TouchEvent (eg. for emulating a mo
use |
| 578 // with touch input for plugins that don't support touch input). | 578 // with touch input for plugins that don't support touch input). |
| 579 WebMouseEventBuilder::WebMouseEventBuilder(const Widget* widget, const LayoutIte
m layoutItem, const TouchEvent& event) | 579 WebMouseEventBuilder::WebMouseEventBuilder(const Widget* widget, const LayoutIte
m layoutItem, const TouchEvent& event) |
| (...skipping 26 matching lines...) Expand all Loading... |
| 606 // FIXME: if view == nullptr, pointInRootFrame will really be pointInRootCon
tent. | 606 // FIXME: if view == nullptr, pointInRootFrame will really be pointInRootCon
tent. |
| 607 IntPoint pointInRootFrame = roundedIntPoint(touch->absoluteLocation()); | 607 IntPoint pointInRootFrame = roundedIntPoint(touch->absoluteLocation()); |
| 608 if (view) | 608 if (view) |
| 609 pointInRootFrame = view->contentsToRootFrame(pointInRootFrame); | 609 pointInRootFrame = view->contentsToRootFrame(pointInRootFrame); |
| 610 IntPoint screenPoint = roundedIntPoint(touch->screenLocation()); | 610 IntPoint screenPoint = roundedIntPoint(touch->screenLocation()); |
| 611 globalX = screenPoint.x(); | 611 globalX = screenPoint.x(); |
| 612 globalY = screenPoint.y(); | 612 globalY = screenPoint.y(); |
| 613 windowX = pointInRootFrame.x(); | 613 windowX = pointInRootFrame.x(); |
| 614 windowY = pointInRootFrame.y(); | 614 windowY = pointInRootFrame.y(); |
| 615 | 615 |
| 616 button = WebMouseEvent::ButtonLeft; | 616 button = WebMouseEvent::Button::Left; |
| 617 modifiers |= WebInputEvent::LeftButtonDown; | 617 modifiers |= WebInputEvent::LeftButtonDown; |
| 618 clickCount = (type == MouseDown || type == MouseUp); | 618 clickCount = (type == MouseDown || type == MouseUp); |
| 619 | 619 |
| 620 IntPoint localPoint = convertAbsoluteLocationForLayoutObject(touch->absolute
Location(), layoutItem); | 620 IntPoint localPoint = convertAbsoluteLocationForLayoutObject(touch->absolute
Location(), layoutItem); |
| 621 x = localPoint.x(); | 621 x = localPoint.x(); |
| 622 y = localPoint.y(); | 622 y = localPoint.y(); |
| 623 | 623 |
| 624 pointerType = WebPointerProperties::PointerType::Touch; | 624 pointerType = WebPointerProperties::PointerType::Touch; |
| 625 } | 625 } |
| 626 | 626 |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 818 break; | 818 break; |
| 819 case GestureSourceTouchscreen: | 819 case GestureSourceTouchscreen: |
| 820 sourceDevice = WebGestureDeviceTouchscreen; | 820 sourceDevice = WebGestureDeviceTouchscreen; |
| 821 break; | 821 break; |
| 822 case GestureSourceUninitialized: | 822 case GestureSourceUninitialized: |
| 823 NOTREACHED(); | 823 NOTREACHED(); |
| 824 } | 824 } |
| 825 } | 825 } |
| 826 | 826 |
| 827 } // namespace blink | 827 } // namespace blink |
| OLD | NEW |