Commit e599d76c59e02db0120714fadfc42cd65c90be71
-
- Dan Bernstein <mitz @web…it.org>
- Fri Mar 12 18:06:39 CET 2010
<rdar://problem/7694674> Hover states not updated when overflow section scrolls under stationary mouse pointer https://bugs.webkit.org/show_bug.cgi?id=35949 Reviewed by Darin Adler. WebCore: Test: fast/events/overflow-scroll-fake-mouse-move.html Soon after an overflow section scrolls under the mouse pointer, dispatch a fake mouse move event. This is similar to how frame scrolling is handled in WebKit, and has the effect of updating hover state, dispatching DOM mouse events, and updating the tool tip. * page/EventHandler.cpp: (WebCore::EventHandler::EventHandler): Initialize m_fakeMouseMoveEventTimer. (WebCore::EventHandler::~EventHandler): Assert that the timer is not active. (WebCore::EventHandler::clear): Stop the timer. (WebCore::EventHandler::handleMousePressEvent): Cancel pending fake mouse move events. (WebCore::EventHandler::handleMouseMoveEvent): Ditto. (WebCore::EventHandler::dispatchFakeMouseMoveEventSoonInQuad): If the mouse is in the passed-in quad, ensure that a fake mouse move event is scheduled to fire soon. (WebCore::EventHandler::cancelFakeMouseMoveEvent): Does what the name says. (WebCore::EventHandler::fakeMouseMoveEventTimerFired): Constructs a PlatformMouseEvent with the current mouse location, modifier key state and time stamp and calls mouseMoved(). * page/EventHandler.h: * platform/PlatformKeyboardEvent.h: Declared getCurrentModifierState(). * platform/android/KeyEventAndroid.cpp: (WebCore::PlatformKeyboardEvent::getCurrentModifierState): Stubbed out. * platform/brew/PlatformKeyboardEventBrew.cpp: (WebCore::PlatformKeyboardEvent::getCurrentModifierState): Ditto. * platform/chromium/PlatformKeyboardEventChromium.cpp: (WebCore::PlatformKeyboardEvent::getCurrentModifierState): Added. * platform/efl/PlatformKeyboardEventEfl.cpp: (WebCore::PlatformKeyboardEvent::getCurrentModifierState): Stubbed out. * platform/gtk/KeyEventGtk.cpp: (WebCore::PlatformKeyboardEvent::getCurrentModifierState): Ditto. * platform/haiku/PlatformKeyboardEventHaiku.cpp: (WebCore::PlatformKeyboardEvent::getCurrentModifierState): Added. * platform/mac/KeyEventMac.mm: (WebCore::PlatformKeyboardEvent::getCurrentModifierState): Ditto. * platform/qt/PlatformKeyboardEventQt.cpp: (WebCore::PlatformKeyboardEvent::getCurrentModifierState): Stubbed out. * platform/win/KeyEventWin.cpp: (WebCore::PlatformKeyboardEvent::getCurrentModifierState): Added. * platform/wx/KeyboardEventWx.cpp: (WebCore::PlatformKeyboardEvent::getCurrentModifierState): Ditto. * rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollToOffset): Call EventHandler::dispatchFakeMouseMoveEventSoonInQuad(). Moved things around a little to avoid computing the repaint rect twice. LayoutTests: * fast/events/overflow-scroll-fake-mouse-move-expected.txt: Added. * fast/events/overflow-scroll-fake-mouse-move.html: Added. * fast/events/touch/basic-multi-touch-events.html: * fast/events/touch/basic-single-touch-events.html: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@55909 268f45cc-cd09-0410-ab3c-d52691b4dbfc
This is the initial commit in this repository, browse the initial tree state.

