MouseRelatedEvent::MouseRelatedEvent(const AtomicString& eventType, bool canBubble, bool cancelable, PassRefPtr<AbstractView> abstractView, int detail, const IntPoint& screenLocation, const IntPoint& windowLocation, #if ENABLE(POINTER_LOCK) const IntPoint& movementDelta, #endif bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, bool isSimulated) : UIEventWithKeyState(eventType, canBubble, cancelable, abstractView, detail, ctrlKey, altKey, shiftKey, metaKey) , m_screenLocation(screenLocation) #if ENABLE(POINTER_LOCK) , m_movementDelta(movementDelta) #endif , m_isSimulated(isSimulated) { LayoutPoint adjustedPageLocation; LayoutPoint scrollPosition; Frame* frame = view() ? view()->frame() : 0; if (frame && !isSimulated) { if (FrameView* frameView = frame->view()) { scrollPosition = frameView->scrollPosition(); adjustedPageLocation = frameView->windowToContents(windowLocation); float scaleFactor = frame->pageZoomFactor() * frame->frameScaleFactor(); if (scaleFactor != 1.0f) { // Adjust our pageX and pageY to account for the page zoom. adjustedPageLocation.scale(1 / scaleFactor, 1 / scaleFactor); // FIXME: Change this to use float math and proper rounding (or // better yet, use LayoutPoint::scale). scrollPosition.setX(scrollPosition.x() / scaleFactor); scrollPosition.setY(scrollPosition.y() / scaleFactor); } } } m_clientLocation = adjustedPageLocation - toLayoutSize(scrollPosition); m_pageLocation = adjustedPageLocation; initCoordinates(); }
MouseRelatedEvent::MouseRelatedEvent(const AtomicString& eventType, bool canBubble, bool cancelable, double timestamp, PassRefPtr<AbstractView> abstractView, int detail, const IntPoint& screenLocation, const IntPoint& windowLocation, #if ENABLE(POINTER_LOCK) const IntPoint& movementDelta, #endif bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, bool isSimulated) : UIEventWithKeyState(eventType, canBubble, cancelable, timestamp, abstractView, detail, ctrlKey, altKey, shiftKey, metaKey) , m_screenLocation(screenLocation) #if ENABLE(POINTER_LOCK) , m_movementDelta(movementDelta) #endif , m_isSimulated(isSimulated) { LayoutPoint adjustedPageLocation; LayoutPoint scrollPosition; Frame* frame = view() ? view()->frame() : 0; if (frame && !isSimulated) { if (FrameView* frameView = frame->view()) { #if !PLATFORM(IOS) scrollPosition = frameView->scrollPosition(); #else scrollPosition = frameView->actualScrollPosition(); #endif adjustedPageLocation = frameView->windowToContents(windowLocation); float scaleFactor = 1 / (frame->pageZoomFactor() * frame->frameScaleFactor()); if (scaleFactor != 1.0f) { adjustedPageLocation.scale(scaleFactor, scaleFactor); scrollPosition.scale(scaleFactor, scaleFactor); } } } m_clientLocation = adjustedPageLocation - toLayoutSize(scrollPosition); m_pageLocation = adjustedPageLocation; initCoordinates(); }
void WheelEvent::initWheelEvent(int rawDeltaX, int rawDeltaY, PassRefPtr<AbstractView> view, int screenX, int screenY, int pageX, int pageY, bool ctrlKey, bool altKey, bool shiftKey, bool metaKey) { if (dispatched()) return; initUIEvent(eventNames().wheelEvent, true, true, view, 0); m_screenLocation = IntPoint(screenX, screenY); m_ctrlKey = ctrlKey; m_altKey = altKey; m_shiftKey = shiftKey; m_metaKey = metaKey; m_wheelDelta = IntPoint(rawDeltaX * TickMultiplier, rawDeltaY * TickMultiplier); m_deltaX = -rawDeltaX; m_deltaY = -rawDeltaY; m_deltaMode = DOM_DELTA_PIXEL; m_directionInvertedFromDevice = false; initCoordinates(IntPoint(pageX, pageY)); }
void MouseRelatedEvent::init(bool isSimulated, const IntPoint& windowLocation) { LayoutPoint adjustedPageLocation; LayoutPoint scrollPosition; Frame* frame = view() ? view()->frame() : nullptr; if (frame && !isSimulated) { if (FrameView* frameView = frame->view()) { scrollPosition = frameView->contentsScrollPosition(); adjustedPageLocation = frameView->windowToContents(windowLocation); float scaleFactor = 1 / (frame->pageZoomFactor() * frame->frameScaleFactor()); if (scaleFactor != 1.0f) { adjustedPageLocation.scale(scaleFactor, scaleFactor); scrollPosition.scale(scaleFactor, scaleFactor); } } } m_clientLocation = adjustedPageLocation - toLayoutSize(scrollPosition); m_pageLocation = adjustedPageLocation; initCoordinates(); }
void WheelEvent::initWheelEvent(int rawDeltaX, int rawDeltaY, PassRefPtr<AbstractView> view, int screenX, int screenY, int pageX, int pageY, bool ctrlKey, bool altKey, bool shiftKey, bool metaKey) { if (dispatched()) return; initUIEvent(eventNames().mousewheelEvent, true, true, view, 0); m_screenLocation = IntPoint(screenX, screenY); m_ctrlKey = ctrlKey; m_altKey = altKey; m_shiftKey = shiftKey; m_metaKey = metaKey; // Normalize to the Windows 120 multiple m_wheelDelta = IntPoint(rawDeltaX * 120, rawDeltaY * 120); m_rawDelta = IntPoint(rawDeltaX, rawDeltaY); m_granularity = Pixel; initCoordinates(IntPoint(pageX, pageY)); }
void MouseEvent::initMouseEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtr<AbstractView> view, int detail, int screenX, int screenY, int clientX, int clientY, bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, unsigned short button, PassRefPtr<EventTarget> relatedTarget) { if (dispatched()) return; initUIEvent(type, canBubble, cancelable, view, detail); m_screenLocation = IntPoint(screenX, screenY); m_ctrlKey = ctrlKey; m_altKey = altKey; m_shiftKey = shiftKey; m_metaKey = metaKey; m_button = button == (unsigned short)-1 ? 0 : button; m_buttonDown = button != (unsigned short)-1; m_relatedTarget = relatedTarget; initCoordinates(IntPoint(clientX, clientY)); // FIXME: m_isSimulated is not set to false here. // FIXME: m_clipboard is not set to 0 here. }