Changeset 16975 in webkit
- Timestamp:
- Oct 10, 2006, 2:18:03 PM (18 years ago)
- Location:
- trunk
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r16973 r16975 1 2006-10-10 Adele Peterson <adele@apple.com> 2 3 Reviewed by Beth. 4 5 6 - Fix for <rdar://problem/4707489> After timers fix, crash below RenderLayer::autoscroll after moving/destroying active <input type=text> 7 and <rdar://problem/4707519> After timers fix, crash below RenderLayer::autoscroll after moving/destroying active textarea 8 9 Moved autoscroll code to the Frame class 10 11 * bridge/mac/FrameMac.h: Moved _mouseDownMayStartDrag and _mouseDownMayStartAutoscroll flags to the frame. 12 * bridge/mac/FrameMac.mm: Use new getters and setters for drag and autoscroll flags. Moved autoscroll code to Frame::handleMouseMoveEvent. 13 (WebCore::FrameMac::FrameMac): 14 (WebCore::FrameMac::handleMousePressEvent): 15 (WebCore::FrameMac::eventMayStartDrag): 16 (WebCore::FrameMac::handleMouseMoveEvent): 17 (WebCore::FrameMac::mouseDown): 18 19 * bridge/mac/WebCoreFrameBridge.h: Removed handleAutoscrollForMouseDragged, which called over the bridge for AppKit to do autoscroll for us. 20 Now we scroll our views in WebCore. 21 22 * page/Frame.cpp: 23 (WebCore::Frame::handleMousePressEvent): Initialize the mouseDownMayStartAutoscroll flag. 24 (WebCore::Frame::handleMouseMoveEvent): Now kicks off autoscroll if appropriate. Moved from FrameMac. 25 (WebCore::Frame::updateSelectionForMouseDragOverPosition): Factored code out from handleMouseMoveEvent so we can update the selection from autoscroll too. 26 (WebCore::Frame::mouseDownMayStartAutoscroll): Added. 27 (WebCore::Frame::setMouseDownMayStartAutoscroll): Added. 28 (WebCore::Frame::mouseDownMayStartDrag): Added. 29 (WebCore::Frame::setMouseDownMayStartDrag): Added. 30 (WebCore::Frame::autoscrollRenderer): Added 31 (WebCore::Frame::setAutoscrollRenderer): Added. 32 (WebCore::Frame::handleAutoscroll): Updated to use autoscrollRenderer getter and setter. 33 (WebCore::Frame::autoscrollTimerFired): ditto. 34 (WebCore::Frame::stopAutoscrollTimer): ditto. 35 * page/Frame.h: Made autoscrollRenderer and stopAutoscrollTimer public, so the renderer being autoscrolled can kill the timer when it dies. 36 37 * page/FramePrivate.h: 38 (WebCore::FramePrivate::FramePrivate): Added mouseDownMayStartDrag and mouseDownMayStartAutoscroll flags. Moved from FrameMac. 39 40 * page/FrameView.cpp: Store the current mouse position in window coordinates. The callers can convert to their own coordinate space. 41 (WebCore::FrameView::handleMousePressEvent): 42 (WebCore::FrameView::handleMouseDoubleClickEvent): 43 (WebCore::FrameView::handleMouseMoveEvent): 44 (WebCore::FrameView::handleMouseReleaseEvent): 45 46 * rendering/RenderLayer.cpp: 47 (WebCore::RenderLayer::autoscroll): Rewrote this to scroll recursively, and to scroll based on the mouse position (not the selection). 48 We also need to update the selection here, since autoscroll can occur without a mouseMove event, and the selection needs to get reset as we scroll. 49 50 * rendering/RenderListBox.cpp: 51 (WebCore::RenderListBox::autoscroll): Convert the mouse coordinates to the right space. 52 53 * rendering/RenderObject.cpp: 54 (WebCore::RenderObject::shouldAutoscroll): Also return true if the renderer is a root (so we know to autoscroll views too) 55 (WebCore::RenderObject::destroy): If this renderer is being autoscrolled, stop the frame's autoscroll timer. 56 1 57 2006-10-10 Darin Adler <darin@apple.com> 2 58 -
trunk/WebCore/bridge/mac/FrameMac.h
r16927 r16975 354 354 bool _mouseDownWasInSubframe; 355 355 bool _sendingEventToSubview; 356 bool _mouseDownMayStartDrag;357 356 bool _mouseDownMayStartSelect; 358 bool _mouseDownMayStartAutoscroll;359 357 PlatformMouseEvent m_mouseDown; 360 358 // in our view's coords -
trunk/WebCore/bridge/mac/FrameMac.mm
r16927 r16975 153 153 , _mouseDownView(nil) 154 154 , _sendingEventToSubview(false) 155 , _mouseDownMayStartDrag(false)156 155 , _mouseDownMayStartSelect(false) 157 , _mouseDownMayStartAutoscroll(false)158 156 , _activationEventNumber(0) 159 157 , _bindingRoot(0) … … 1409 1407 1410 1408 // Careful that the drag starting logic stays in sync with eventMayStartDrag() 1411 _mouseDownMayStartDrag = singleClick;1409 setMouseDownMayStartDrag(singleClick); 1412 1410 1413 1411 d->m_mousePressNode = event.targetNode(); 1414 1415 _mouseDownMayStartAutoscroll = d->m_mousePressNode && d->m_mousePressNode->renderer() && d->m_mousePressNode->renderer()->shouldAutoscroll();1416 1412 1417 1413 if (!passWidgetMouseDownEventToWidget(event)) { … … 1588 1584 { 1589 1585 // This is a pre-flight check of whether the event might lead to a drag being started. Be careful 1590 // that its logic needs to stay in sync with handleMouseMoveEvent() and the way we set 1591 // _mouseDownMayStartDragin handleMousePressEvent1586 // that its logic needs to stay in sync with handleMouseMoveEvent() and the way we setMouseDownMayStartDrag 1587 // in handleMousePressEvent 1592 1588 1593 1589 if ([event type] != NSLeftMouseDown || [event clickCount] != 1) { … … 1651 1647 // Careful that the drag starting logic stays in sync with eventMayStartDrag() 1652 1648 1653 if ( _mouseDownMayStartDrag&& !_dragSrc) {1649 if (mouseDownMayStartDrag() && !_dragSrc) { 1654 1650 BOOL tempFlag1, tempFlag2; 1655 1651 [_bridge allowDHTMLDrag:&tempFlag1 UADrag:&tempFlag2]; … … 1657 1653 _dragSrcMayBeUA = tempFlag2; 1658 1654 if (!_dragSrcMayBeDHTML && !_dragSrcMayBeUA) { 1659 _mouseDownMayStartDrag = false; // no element is draggable1655 setMouseDownMayStartDrag(false); // no element is draggable 1660 1656 } 1661 1657 } 1662 1658 1663 if ( _mouseDownMayStartDrag&& !_dragSrc) {1659 if (mouseDownMayStartDrag() && !_dragSrc) { 1664 1660 // try to find an element that wants to be dragged 1665 1661 RenderObject::NodeInfo nodeInfo(true, false); … … 1668 1664 _dragSrc = (node && node->renderer()) ? node->renderer()->draggableNode(_dragSrcMayBeDHTML, _dragSrcMayBeUA, m_mouseDownPos.x(), m_mouseDownPos.y(), _dragSrcIsDHTML) : 0; 1669 1665 if (!_dragSrc) { 1670 _mouseDownMayStartDrag = false; // no element is draggable1666 setMouseDownMayStartDrag(false); // no element is draggable 1671 1667 } else { 1672 1668 // remember some facts about this source, while we have a NodeInfo handy … … 1683 1679 // For drags starting in the selection, the user must wait between the mousedown and mousedrag, 1684 1680 // or else we bail on the dragging stuff and allow selection to occur 1685 if ( _mouseDownMayStartDrag&& _dragSrcInSelection && [_currentEvent timestamp] - _mouseDownTimestamp < TextDragDelay) {1686 _mouseDownMayStartDrag = false;1681 if (mouseDownMayStartDrag() && _dragSrcInSelection && [_currentEvent timestamp] - _mouseDownTimestamp < TextDragDelay) { 1682 setMouseDownMayStartDrag(false); 1687 1683 // ...but if this was the first click in the window, we don't even want to start selection 1688 1684 if (_activationEventNumber == [_currentEvent eventNumber]) { … … 1691 1687 } 1692 1688 1693 if ( _mouseDownMayStartDrag) {1689 if (mouseDownMayStartDrag()) { 1694 1690 // We are starting a text/image/url drag, so the cursor should be an arrow 1695 1691 d->m_view->setCursor(pointerCursor()); … … 1724 1720 } 1725 1721 1726 _mouseDownMayStartDrag = dispatchDragSrcEvent(dragstartEvent, m_mouseDown) && mayCopy();1722 setMouseDownMayStartDrag(dispatchDragSrcEvent(dragstartEvent, m_mouseDown) && mayCopy()); 1727 1723 // Invalidate clipboard here against anymore pasteboard writing for security. The drag 1728 1724 // image can still be changed as we drag, but not the pasteboard data. 1729 1725 _dragClipboard->setAccessPolicy(ClipboardMac::ImageWritable); 1730 1726 1731 if ( _mouseDownMayStartDrag) {1727 if (mouseDownMayStartDrag()) { 1732 1728 // gather values from DHTML element, if it set any 1733 1729 _dragClipboard->sourceOperation(&srcOp); … … 1747 1743 } 1748 1744 1749 if ( _mouseDownMayStartDrag) {1745 if (mouseDownMayStartDrag()) { 1750 1746 BOOL startedDrag = [_bridge startDraggingImage:dragImage at:dragLoc operation:srcOp event:_currentEvent sourceIsDHTML:_dragSrcIsDHTML DHTMLWroteData:wcWrotePasteboard]; 1751 1747 if (!startedDrag && _dragSrcMayBeDHTML) { … … 1753 1749 PlatformMouseEvent event(PlatformMouseEvent::currentEvent); 1754 1750 dispatchDragSrcEvent(dragendEvent, event); 1755 _mouseDownMayStartDrag = false;1751 setMouseDownMayStartDrag(false); 1756 1752 } 1757 1753 } 1758 1754 1759 if (! _mouseDownMayStartDrag) {1755 if (!mouseDownMayStartDrag()) { 1760 1756 // something failed to start the drag, cleanup 1761 1757 freeClipboard(); … … 1767 1763 return; 1768 1764 } 1769 if (! _mouseDownMayStartSelect && !_mouseDownMayStartAutoscroll) {1765 if (!mouseDownMayStartSelect() && !mouseDownMayStartAutoscroll()) 1770 1766 return; 1771 }1772 1773 // Don't allow dragging or click handling after we've started selecting.1774 _mouseDownMayStartDrag = false;1775 d->m_view->invalidateClick();1776 1777 Node* node = event.targetNode();1778 RenderObject* renderer = 0;1779 if (node)1780 renderer = node->renderer();1781 1782 // If the selection is contained in a layer that can scroll, that layer should handle the autoscroll1783 // Otherwise, let the bridge handle it so the view can scroll itself.1784 while (renderer && !renderer->shouldAutoscroll())1785 renderer = renderer->parent();1786 if (renderer)1787 handleAutoscroll(renderer);1788 else {1789 if (!d->m_autoscrollTimer.isActive())1790 startAutoscrollTimer();1791 [_bridge handleAutoscrollForMouseDragged:_currentEvent];1792 }1793 1767 1794 1768 } else { … … 2009 1983 _mouseDownTimestamp = [event timestamp]; 2010 1984 2011 _mouseDownMayStartDrag = false;1985 setMouseDownMayStartDrag(false); 2012 1986 _mouseDownMayStartSelect = false; 2013 _mouseDownMayStartAutoscroll = false;2014 1987 setMouseDownMayStartAutoscroll(false); 1988 2015 1989 v->handleMousePressEvent(event); 2016 1990 -
trunk/WebCore/bridge/mac/WebCoreFrameBridge.h
r16962 r16975 626 626 - (void)allowDHTMLDrag:(BOOL *)flagDHTML UADrag:(BOOL *)flagUA; 627 627 - (BOOL)startDraggingImage:(NSImage *)dragImage at:(NSPoint)dragLoc operation:(NSDragOperation)op event:(NSEvent *)event sourceIsDHTML:(BOOL)flag DHTMLWroteData:(BOOL)dhtmlWroteData; 628 - (void)handleAutoscrollForMouseDragged:(NSEvent *)event;629 628 - (BOOL)mayStartDragAtEventLocation:(NSPoint)location; 630 629 -
trunk/WebCore/page/Frame.cpp
r16955 r16975 1933 1933 handleMousePressEventSingleClick(event); 1934 1934 } 1935 1936 setMouseDownMayStartAutoscroll(mouseDownMayStartSelect() || 1937 (d->m_mousePressNode && d->m_mousePressNode->renderer() && d->m_mousePressNode->renderer()->shouldAutoscroll())); 1935 1938 } 1936 1939 … … 1943 1946 Node *innerNode = event.targetNode(); 1944 1947 1945 if (event.event().button() != 0 || !innerNode || !innerNode->renderer() || !mouseDownMayStartSelect() || !innerNode->renderer()->shouldSelect()) 1946 return; 1947 1948 // handle making selection 1949 1950 IntPoint vPoint = view()->windowToContents(event.event().pos()); 1951 VisiblePosition pos(innerNode->renderer()->positionForPoint(vPoint)); 1952 1948 if (event.event().button() != 0 || !innerNode || !innerNode->renderer()) 1949 return; 1950 1951 if (mouseDownMayStartAutoscroll()) { 1952 // If the selection is contained in a layer that can scroll, that layer should handle the autoscroll 1953 // Otherwise, let the bridge handle it so the view can scroll itself. 1954 RenderObject* renderer = innerNode->renderer(); 1955 while (renderer && !renderer->shouldAutoscroll()) 1956 renderer = renderer->parent(); 1957 if (renderer) 1958 handleAutoscroll(renderer); 1959 1960 setMouseDownMayStartDrag(false); 1961 view()->invalidateClick(); 1962 } 1963 1964 if (mouseDownMayStartSelect() && innerNode->renderer()->shouldSelect()) { 1965 // handle making selection 1966 IntPoint vPoint = view()->windowToContents(event.event().pos()); 1967 VisiblePosition pos(innerNode->renderer()->positionForPoint(vPoint)); 1968 1969 updateSelectionForMouseDragOverPosition(pos); 1970 } 1971 1972 } 1973 1974 void Frame::updateSelectionForMouseDragOverPosition(const VisiblePosition& pos) 1975 { 1953 1976 // Don't modify the selection if we're not on a node. 1954 1977 if (pos.isNull()) … … 2628 2651 } 2629 2652 2653 bool Frame::mouseDownMayStartAutoscroll() const 2654 { 2655 return d->m_mouseDownMayStartAutoscroll; 2656 } 2657 2658 void Frame::setMouseDownMayStartAutoscroll(bool b) 2659 { 2660 d->m_mouseDownMayStartAutoscroll = b; 2661 } 2662 2663 bool Frame::mouseDownMayStartDrag() const 2664 { 2665 return d->m_mouseDownMayStartDrag; 2666 } 2667 2668 void Frame::setMouseDownMayStartDrag(bool b) 2669 { 2670 d->m_mouseDownMayStartDrag = b; 2671 } 2672 2630 2673 void Frame::handleFallbackContent() 2631 2674 { … … 2847 2890 if (d->m_autoscrollTimer.isActive()) 2848 2891 return; 2849 d->m_autoscrollRenderer = renderer;2892 setAutoscrollRenderer(renderer); 2850 2893 startAutoscrollTimer(); 2851 2894 } … … 2857 2900 return; 2858 2901 } 2859 if (d->m_autoscrollRenderer) { 2860 d->m_autoscrollRenderer->autoscroll(); 2861 } 2902 if (RenderObject* r = autoscrollRenderer()) 2903 r->autoscroll(); 2904 } 2905 2906 RenderObject* Frame::autoscrollRenderer() const 2907 { 2908 return d->m_autoscrollRenderer; 2909 } 2910 2911 void Frame::setAutoscrollRenderer(RenderObject* renderer) 2912 { 2913 d->m_autoscrollRenderer = renderer; 2862 2914 } 2863 2915 … … 2923 2975 void Frame::stopAutoscrollTimer() 2924 2976 { 2925 d->m_autoscrollRenderer = 0;2977 setAutoscrollRenderer(0); 2926 2978 d->m_autoscrollTimer.stop(); 2927 2979 } -
trunk/WebCore/page/Frame.h
r16954 r16975 525 525 virtual void handleMouseReleaseEvent(const MouseEventWithHitTestResults&); 526 526 527 void updateSelectionForMouseDragOverPosition(const VisiblePosition&); 528 527 529 void selectClosestWordFromMouseEvent(const PlatformMouseEvent&, Node* innerNode); 528 530 … … 641 643 642 644 virtual bool mouseDownMayStartSelect() const { return true; } 643 645 bool mouseDownMayStartAutoscroll() const; 646 void setMouseDownMayStartAutoscroll(bool b); 647 648 bool mouseDownMayStartDrag() const; 649 void setMouseDownMayStartDrag(bool b); 650 644 651 void handleFallbackContent(); 645 652 … … 750 757 751 758 virtual IntRect windowResizerRect() const { return IntRect(); } 759 760 void stopAutoscrollTimer(); 761 RenderObject* autoscrollRenderer() const; 752 762 753 763 protected: … … 759 769 void handleAutoscroll(RenderObject*); 760 770 void startAutoscrollTimer(); 761 void s topAutoscrollTimer();771 void setAutoscrollRenderer(RenderObject*); 762 772 763 773 private: -
trunk/WebCore/page/FramePrivate.h
r16727 r16975 103 103 , m_autoscrollTimer(thisFrame, &Frame::autoscrollTimerFired) 104 104 , m_autoscrollRenderer(0) 105 , m_mouseDownMayStartAutoscroll(false) 106 , m_mouseDownMayStartDrag(false) 105 107 , m_paintRestriction(PaintRestrictionNone) 106 108 , m_markedTextUsesUnderlines(false) … … 223 225 Timer<Frame> m_autoscrollTimer; 224 226 RenderObject* m_autoscrollRenderer; 227 bool m_mouseDownMayStartAutoscroll; 228 bool m_mouseDownMayStartDrag; 225 229 226 230 RefPtr<Node> m_elementToDraw; -
trunk/WebCore/page/FrameView.cpp
r16879 r16975 589 589 590 590 d->mousePressed = true; 591 d->m_currentMousePosition = windowToContents(mouseEvent.pos());591 d->m_currentMousePosition = mouseEvent.pos(); 592 592 593 593 MouseEventWithHitTestResults mev = prepareMouseEvent(false, true, false, mouseEvent); … … 648 648 // We get this instead of a second mouse-up 649 649 d->mousePressed = false; 650 d->m_currentMousePosition = windowToContents(mouseEvent.pos());650 d->m_currentMousePosition = mouseEvent.pos(); 651 651 652 652 MouseEventWithHitTestResults mev = prepareMouseEvent(false, true, false, mouseEvent); … … 804 804 805 805 RefPtr<FrameView> protector(this); 806 d->m_currentMousePosition = windowToContents(mouseEvent.pos());806 d->m_currentMousePosition = mouseEvent.pos(); 807 807 808 808 if (d->hoverTimer.isActive()) … … 880 880 881 881 d->mousePressed = false; 882 d->m_currentMousePosition = windowToContents(mouseEvent.pos());882 d->m_currentMousePosition = mouseEvent.pos(); 883 883 884 884 if (d->resizingFrameSet) { -
trunk/WebCore/rendering/RenderLayer.cpp
r16879 r16975 755 755 756 756 void RenderLayer::autoscroll() 757 { 758 int xOffset = scrollXOffset(); 759 int yOffset = scrollYOffset(); 760 761 // Get the rectangle for the extent of the selection 762 Selection selection(renderer()->document()->frame()->selectionController()->selection()); 763 IntRect extentRect = VisiblePosition(selection.extent()).caretRect(); 764 extentRect.move(xOffset, yOffset); 765 766 IntRect bounds = IntRect(xPos() + xOffset, yPos() + yOffset, width() - verticalScrollbarWidth(), height() - horizontalScrollbarHeight()); 767 768 // Calculate how much the layer should scroll horizontally. 769 int diffX = 0; 770 if (extentRect.right() > bounds.right()) 771 diffX = extentRect.right() - bounds.right(); 772 else if (extentRect.x() < bounds.x()) 773 diffX = extentRect.x() - bounds.x(); 757 { 758 if (!renderer() || !renderer()->document() || !renderer()->document()->frame() || !renderer()->document()->frame()->view()) 759 return; 774 760 775 // Calculate how much the layer should scroll vertically. 776 int diffY = 0; 777 if (extentRect.bottom() > bounds.bottom()) 778 diffY = extentRect.bottom() - bounds.bottom(); 779 else if (extentRect.y() < bounds.y()) 780 diffY = extentRect.y() - bounds.y(); 781 782 scrollToOffset(xOffset + diffX, yOffset + diffY); 761 Frame* currentFrame = renderer()->document()->frame(); 762 IntPoint currentPos = currentFrame->view()->windowToContents(currentFrame->view()->currentMousePosition()); 763 764 if (currentFrame->mouseDownMayStartSelect()) { 765 VisiblePosition pos(renderer()->positionForPoint(currentPos)); 766 currentFrame->updateSelectionForMouseDragOverPosition(pos); 767 } 768 769 scrollRectToVisible(IntRect(currentPos, IntSize(1, 1)), gAlignToEdgeIfNeeded, gAlignToEdgeIfNeeded); 783 770 } 784 771 -
trunk/WebCore/rendering/RenderListBox.cpp
r16836 r16975 356 356 void RenderListBox::autoscroll() 357 357 { 358 int mouseX = document()->frame()->view()->currentMousePosition().x(); 359 int mouseY = document()->frame()->view()->currentMousePosition().y(); 358 IntPoint pos = document()->frame()->view()->windowToContents(document()->frame()->view()->currentMousePosition()); 360 359 IntRect bounds = absoluteBoundingBoxRect(); 361 360 … … 365 364 int rows = size(); 366 365 int offset = m_indexOffset; 367 if ( mouseY< bounds.y() && scrollToRevealElementAtListIndex(offset - 1) && items[offset - 1]->hasTagName(optionTag))366 if (pos.y() < bounds.y() && scrollToRevealElementAtListIndex(offset - 1) && items[offset - 1]->hasTagName(optionTag)) 368 367 element = static_cast<HTMLOptionElement*>(items[offset - 1]); 369 else if ( mouseY> bounds.bottom() && scrollToRevealElementAtListIndex(offset + rows) && items[offset + rows - 1]->hasTagName(optionTag))368 else if (pos.y() > bounds.bottom() && scrollToRevealElementAtListIndex(offset + rows) && items[offset + rows - 1]->hasTagName(optionTag)) 370 369 element = static_cast<HTMLOptionElement*>(items[offset + rows - 1]); 371 370 else 372 element = optionAtPoint( mouseX, mouseY);371 element = optionAtPoint(pos.x(), pos.y()); 373 372 374 373 if (element) { -
trunk/WebCore/rendering/RenderObject.cpp
r16721 r16975 686 686 bool RenderObject::shouldAutoscroll() const 687 687 { 688 return ( hasOverflowClip() && (scrollsOverflow() || (node() && node()->isContentEditable())));688 return ((isRoot()) || (hasOverflowClip() && (scrollsOverflow() || (node() && node()->isContentEditable())))); 689 689 } 690 690 … … 2421 2421 void RenderObject::destroy() 2422 2422 { 2423 // If this renderer is being autoscrolled, stop the autoscroll timer 2424 if (document() && document()->frame() && document()->frame()->autoscrollRenderer() == this) 2425 document()->frame()->stopAutoscrollTimer(); 2426 2423 2427 if (m_hasCounterNodeMap) { 2424 2428 RenderObjectsToCounterNodeMaps* objectsMap = getRenderObjectsToCounterNodeMaps(); -
trunk/WebKit/ChangeLog
r16970 r16975 1 2006-10-10 Adele Peterson <adele@apple.com> 2 3 Reviewed by Beth. 4 5 Removed handleAutoscrollForMouseDragged. Except for autoscroll caused by drag and drop, all other 6 autoscrolling should be done in WebCore instead of in AppKit. 7 8 * WebCoreSupport/WebFrameBridge.m: 9 * WebView/WebHTMLView.m: 10 * WebView/WebHTMLViewPrivate.h: 11 1 12 2006-10-10 Darin Adler <darin@apple.com> 2 13 -
trunk/WebKit/WebCoreSupport/WebFrameBridge.m
r16967 r16975 1203 1203 } 1204 1204 1205 - (void)handleAutoscrollForMouseDragged:(NSEvent *)event;1206 {1207 WebHTMLView *docView = (WebHTMLView *)[[_frame frameView] documentView];1208 1209 ASSERT([docView isKindOfClass:[WebHTMLView class]]);1210 1211 [docView _handleAutoscrollForMouseDragged:event];1212 }1213 1214 1205 - (BOOL)mayStartDragAtEventLocation:(NSPoint)location 1215 1206 { -
trunk/WebKit/WebView/WebHTMLView.m
r16967 r16975 1466 1466 } 1467 1467 return startedDrag; 1468 }1469 1470 - (void)_handleAutoscrollForMouseDragged:(NSEvent *)event1471 {1472 [self autoscroll:event];1473 [self _startAutoscrollTimer:event];1474 1468 } 1475 1469 -
trunk/WebKit/WebView/WebHTMLViewPrivate.h
r16593 r16975 70 70 - (NSImage *)_dragImageForLinkElement:(NSDictionary *)element; 71 71 - (BOOL)_startDraggingImage:(NSImage *)dragImage at:(NSPoint)dragLoc operation:(NSDragOperation)op event:(NSEvent *)event sourceIsDHTML:(BOOL)flag DHTMLWroteData:(BOOL)dhtmlWroteData; 72 - (void)_handleAutoscrollForMouseDragged:(NSEvent *)event;73 72 - (BOOL)_mayStartDragAtEventLocation:(NSPoint)location; 74 73
Note:
See TracChangeset
for help on using the changeset viewer.