ScrollingTree::EventResult RemoteScrollingTree::tryToHandleWheelEvent(const PlatformWheelEvent& wheelEvent) { if (shouldHandleWheelEventSynchronously(wheelEvent)) return SendToMainThread; if (willWheelEventStartSwipeGesture(wheelEvent)) return DidNotHandleEvent; handleWheelEvent(wheelEvent); return DidHandleEvent; }
ScrollingTree::EventResult ThreadedScrollingTree::tryToHandleWheelEvent(const PlatformWheelEvent& wheelEvent) { if (shouldHandleWheelEventSynchronously(wheelEvent)) return SendToMainThread; if (willWheelEventStartSwipeGesture(wheelEvent)) return DidNotHandleEvent; ScrollingThread::dispatch(bind(&ThreadedScrollingTree::handleWheelEvent, this, wheelEvent)); return DidHandleEvent; }
ScrollingTree::EventResult ThreadedScrollingTree::tryToHandleWheelEvent(const PlatformWheelEvent& wheelEvent) { if (shouldHandleWheelEventSynchronously(wheelEvent)) return SendToMainThread; if (willWheelEventStartSwipeGesture(wheelEvent)) return DidNotHandleEvent; RefPtr<ThreadedScrollingTree> protectedThis(this); ScrollingThread::dispatch([protectedThis, wheelEvent] { protectedThis->handleWheelEvent(wheelEvent); }); return DidHandleEvent; }
ScrollingTree::EventResult ScrollingTree::tryToHandleWheelEvent(const PlatformWheelEvent& wheelEvent) { { MutexLocker lock(m_mutex); if (m_hasWheelEventHandlers) return SendToMainThread; if (!m_nonFastScrollableRegion.isEmpty()) { // FIXME: This is not correct for non-default scroll origins. IntPoint position = wheelEvent.position(); position.moveBy(m_mainFrameScrollPosition); if (m_nonFastScrollableRegion.contains(position)) return SendToMainThread; } } if (willWheelEventStartSwipeGesture(wheelEvent)) return DidNotHandleEvent; ScrollingThread::dispatch(bind(&ScrollingTree::handleWheelEvent, this, wheelEvent)); return DidHandleEvent; }