Changeset 103867 in webkit
- Timestamp:
- Dec 31, 2011, 5:04:08 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 5 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r103856 r103867 1 2011-12-31 Dan Bernstein <mitz@apple.com> 2 3 REGRESSION (WebKit2): Cursor, hover states not updated when page scrolls under stationary mouse pointer 4 https://bugs.webkit.org/show_bug.cgi?id=75405 5 6 Reviewed by Anders Carlsson. 7 8 * fast/events/frame-scroll-fake-mouse-move-expected.txt: Added. 9 * fast/events/frame-scroll-fake-mouse-move.html: Copied from 10 LayoutTests/fast/events/overflow-scroll-fake-mouse-move.html and adapted to page scrolling. 11 1 12 2011-12-30 Andreas Kling <awesomekling@apple.com> 2 13 -
trunk/LayoutTests/fast/events/frame-scroll-fake-mouse-move.html
r103865 r103867 1 <div id="target" style="overflow: auto; height: 200px; width: 200px;"> 2 <div onmouseover="mouseOver(event)" style="margin: 300px 0; width: 100px; height: 100px; background-color: blue;"></div> 3 </div> 1 <body style="height: 200%"> 2 <div onmouseover="mouseOver(event)" style="margin: 300px 0; width: 100px; height: 100px; background-color: blue;"></div> 4 3 <div id="result">Test did not run</div> 5 4 <script> … … 27 26 { 28 27 eventSender.mouseMoveTo(50, 100); 29 document. getElementById("target").scrollTop = 250;28 document.body.scrollTop = 250; 30 29 setTimeout(finish, 200); 31 30 }, 200); -
trunk/Source/WebCore/ChangeLog
r103865 r103867 1 2011-12-31 Dan Bernstein <mitz@apple.com> 2 3 WebCore changes for: REGRESSION (WebKit2): Cursor, hover states not updated when page scrolls under stationary mouse pointer 4 https://bugs.webkit.org/show_bug.cgi?id=75405 5 6 Reviewed by Anders Carlsson. 7 8 Test: fast/events/frame-scroll-fake-mouse-move.html 9 10 * page/FrameView.cpp: 11 (WebCore::FrameView::scrollPositionChanged): Added a call to 12 EventHandler::dispatchFakeMouseMoveEventSoon(). 13 1 14 2012-01-01 Andreas Kling <awesomekling@apple.com> 2 15 -
trunk/Source/WebCore/page/FrameView.cpp
r103565 r103867 1736 1736 { 1737 1737 frame()->eventHandler()->sendScrollEvent(); 1738 frame()->eventHandler()->dispatchFakeMouseMoveEventSoon(); 1738 1739 1739 1740 #if USE(ACCELERATED_COMPOSITING) -
trunk/Source/WebKit/mac/ChangeLog
r103652 r103867 1 2011-12-31 Dan Bernstein <mitz@apple.com> 2 3 WebKit/mac changes for: REGRESSION (WebKit2): Cursor, hover states not updated when page scrolls under stationary mouse pointer 4 https://bugs.webkit.org/show_bug.cgi?id=75405 5 6 Reviewed by Anders Carlsson. 7 8 Removed the WebKit/mac mechanism for dispatching fake mouse moved events 9 when an HTML frame scrolls, since FrameView now does this. 10 11 * WebView/WebHTMLView.mm: 12 (-[WebHTMLViewPrivate dealloc]): Removed an assertion about a removed ivar. 13 (-[WebHTMLView _updateMouseoverWithFakeEvent]): Removed call to 14 -_cancelUpdateMouseoverTimer. 15 (-[WebHTMLView _frameOrBoundsChanged]): Removed code to schedule a timer 16 for dispatching a mouse moved event on scroll. 17 (-[WebHTMLView close]): Removed call to _cancelUpdateMouseoverTimer. 18 (-[WebHTMLView viewWillMoveToWindow:]): Ditto. 19 (-[WebHTMLView mouseDown:]): Ditto. 20 1 21 2011-12-23 Ryosuke Niwa <rniwa@webkit.org> 2 22 -
trunk/Source/WebKit/mac/WebView/WebHTMLView.mm
r103643 r103867 519 519 WebDataSource *dataSource; 520 520 WebCore::CachedImage* promisedDragTIFFDataSource; 521 522 CFRunLoopTimerRef updateMouseoverTimer;523 521 524 522 SEL selectorForDoCommandBySelector; … … 579 577 ASSERT(!autoscrollTimer); 580 578 ASSERT(!autoscrollTriggerEvent); 581 ASSERT(!updateMouseoverTimer);582 579 583 580 [mouseDownEvent release]; … … 1048 1045 } 1049 1046 1050 - (void)_cancelUpdateMouseoverTimer1051 {1052 if (_private->updateMouseoverTimer) {1053 CFRunLoopTimerInvalidate(_private->updateMouseoverTimer);1054 CFRelease(_private->updateMouseoverTimer);1055 _private->updateMouseoverTimer = NULL;1056 }1057 }1058 1059 1047 - (WebHTMLView *)_topHTMLView 1060 1048 { … … 1191 1179 - (void)_updateMouseoverWithFakeEvent 1192 1180 { 1193 [self _cancelUpdateMouseoverTimer];1194 1195 1181 NSEvent *fakeEvent = [NSEvent mouseEventWithType:NSMouseMoved 1196 1182 location:[[self window] convertScreenToBase:[NSEvent mouseLocation]] … … 1202 1188 1203 1189 [self _updateMouseoverWithEvent:fakeEvent]; 1204 }1205 1206 static void _updateMouseoverTimerCallback(CFRunLoopTimerRef timer, void *info)1207 {1208 WebHTMLView *view = (WebHTMLView *)info;1209 1210 [view _updateMouseoverWithFakeEvent];1211 1190 } 1212 1191 … … 1232 1211 _private->lastScrollPosition = origin; 1233 1212 1234 if ([self window] && !_private->closed && !_private->updateMouseoverTimer) {1235 CFRunLoopTimerContext context = { 0, self, NULL, NULL, NULL };1236 1237 // Use a 100ms delay so that the synthetic mouse over update doesn't cause cursor thrashing when pages are loading1238 // and scrolling rapidly back to back.1239 _private->updateMouseoverTimer = CFRunLoopTimerCreate(NULL, CFAbsoluteTimeGetCurrent() + 0.1, 0, 0, 0,1240 _updateMouseoverTimerCallback, &context);1241 CFRunLoopAddTimer(CFRunLoopGetCurrent(), _private->updateMouseoverTimer, kCFRunLoopDefaultMode);1242 }1243 1244 1213 #if USE(ACCELERATED_COMPOSITING) && defined(BUILDING_ON_LEOPARD) 1245 1214 [self _updateLayerHostingViewPosition]; … … 1903 1872 _private->closed = YES; 1904 1873 1905 [self _cancelUpdateMouseoverTimer];1906 1874 [self _clearLastHitViewIfSelf]; 1907 1875 [self _removeMouseMovedObserverUnconditionally]; … … 2911 2879 [self _removeWindowObservers]; 2912 2880 [self _removeSuperviewObservers]; 2913 [self _cancelUpdateMouseoverTimer];2914 2881 2915 2882 // FIXME: This accomplishes the same thing as the call to setCanStartMedia(false) in … … 3534 3501 if (!([event modifierFlags] & NSControlKeyMask)) { 3535 3502 _private->ignoringMouseDraggedEvents = NO; 3536 3537 // Don't do any mouseover while the mouse is down.3538 [self _cancelUpdateMouseoverTimer];3539 3503 3540 3504 // Let WebCore get a chance to deal with the event. This will call back to us
Note:
See TracChangeset
for help on using the changeset viewer.