Changeset 45565 in webkit


Ignore:
Timestamp:
Jul 6, 2009 1:59:09 PM (15 years ago)
Author:
andersca@apple.com
Message:

WebCore:

2009-07-06 Anders Carlsson <andersca@apple.com>

Reviewed by Adele Peterson.

Add the ability for wheel events to latch to a node.


  • WebCore.base.exp:
  • page/EventHandler.cpp: (WebCore::EventHandler::EventHandler): (WebCore::EventHandler::clear): (WebCore::EventHandler::handleWheelEvent):
  • page/EventHandler.h:
  • page/mac/EventHandlerMac.mm: (WebCore::EventHandler::wheelEvent):
  • platform/mac/WebCoreSystemInterface.h:
  • platform/mac/WebCoreSystemInterface.mm:

WebKit/mac:

2009-07-06 Anders Carlsson <andersca@apple.com>

Reviewed by Adele Peterson.

Initialize wkIsLatchingWheelEvent.


  • WebCoreSupport/WebSystemInterface.m: (InitWebCoreSystemInterface):
Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r45564 r45565  
     12009-07-06  Anders Carlsson  <andersca@apple.com>
     2
     3        Reviewed by Adele Peterson.
     4
     5        Add the ability for wheel events to latch to a node.
     6       
     7        * WebCore.base.exp:
     8        * page/EventHandler.cpp:
     9        (WebCore::EventHandler::EventHandler):
     10        (WebCore::EventHandler::clear):
     11        (WebCore::EventHandler::handleWheelEvent):
     12        * page/EventHandler.h:
     13        * page/mac/EventHandlerMac.mm:
     14        (WebCore::EventHandler::wheelEvent):
     15        * platform/mac/WebCoreSystemInterface.h:
     16        * platform/mac/WebCoreSystemInterface.mm:
     17
    1182009-07-06  Nate Chapin  <japhet@chromium.org>
    219
  • trunk/WebCore/WebCore.base.exp

    r45502 r45565  
    10021002_wkHitTestMediaUIPart
    10031003_wkInitializeMaximumHTTPConnectionCountPerHost
     1004_wkIsLatchingWheelEvent
    10041005_wkMeasureMediaUIPart
    10051006_wkPopupMenu
  • trunk/WebCore/page/EventHandler.cpp

    r45515 r45565  
    155155    , m_clickCount(0)
    156156    , m_mouseDownTimestamp(0)
     157    , m_useLatchedWheelEventNode(false)
     158    , m_widgetIsLatched(false)
    157159#if PLATFORM(MAC)
    158160    , m_mouseDownView(nil)
     
    194196    m_capturesDragging = false;
    195197    m_capturingMouseEventsNode = 0;
     198    m_latchedWheelEventNode = 0;
    196199}
    197200
     
    17161719    IntPoint vPoint = view->windowToContents(e.pos());
    17171720
    1718     HitTestRequest request(HitTestRequest::ReadOnly);
    1719     HitTestResult result(vPoint);
    1720     doc->renderView()->layer()->hitTest(request, result);
    1721     Node* node = result.innerNode();
     1721    Node* node;
     1722    bool isOverWidget;
     1723    bool didSetLatchedNode = false;
     1724   
     1725    if (m_useLatchedWheelEventNode) {
     1726        if (!m_latchedWheelEventNode) {
     1727            HitTestRequest request(HitTestRequest::ReadOnly);
     1728            HitTestResult result(vPoint);
     1729            doc->renderView()->layer()->hitTest(request, result);
     1730            m_latchedWheelEventNode = result.innerNode();
     1731            m_widgetIsLatched = result.isOverWidget();
     1732            didSetLatchedNode = true;
     1733        }
     1734       
     1735        node = m_latchedWheelEventNode.get();
     1736        isOverWidget = m_widgetIsLatched;
     1737    } else {
     1738        if (m_latchedWheelEventNode)
     1739            m_latchedWheelEventNode = 0;
     1740       
     1741        HitTestRequest request(HitTestRequest::ReadOnly);
     1742        HitTestResult result(vPoint);
     1743        doc->renderView()->layer()->hitTest(request, result);
     1744        node = result.innerNode();
     1745        isOverWidget = result.isOverWidget();
     1746    }
    17221747   
    17231748    if (node) {
     
    17251750        RenderObject* target = node->renderer();
    17261751       
    1727         if (result.isOverWidget() && target && target->isWidget()) {
     1752        if (isOverWidget && target && target->isWidget()) {
    17281753            Widget* widget = static_cast<RenderWidget*>(target)->widget();
    17291754
  • trunk/WebCore/page/EventHandler.h

    r45304 r45565  
    333333    PlatformMouseEvent m_mouseDown;
    334334
     335    bool m_useLatchedWheelEventNode;
     336    RefPtr<Node> m_latchedWheelEventNode;
     337    bool m_widgetIsLatched;
     338   
    335339#if PLATFORM(MAC)
    336340    NSView *m_mouseDownView;
  • trunk/WebCore/page/mac/EventHandlerMac.mm

    r45278 r45565  
    4646#include "Scrollbar.h"
    4747#include "Settings.h"
     48#include "WebCoreSystemInterface.h"
    4849#include <objc/objc-runtime.h>
    4950#include <wtf/StdLibExtras.h>
     
    108109    CurrentEventScope scope(event);
    109110
     111    m_useLatchedWheelEventNode = wkIsLatchingWheelEvent(event);
     112   
    110113    PlatformWheelEvent wheelEvent(event, page->chrome()->platformWindow());
    111114    handleWheelEvent(wheelEvent);
  • trunk/WebCore/platform/mac/WebCoreSystemInterface.h

    r45474 r45565  
    136136extern void (*wkSignalCFReadStreamHasBytes)(CFReadStreamRef stream);
    137137extern unsigned (*wkInitializeMaximumHTTPConnectionCountPerHost)(unsigned preferredConnectionCount);
     138extern BOOL (*wkIsLatchingWheelEvent)(NSEvent *);
    138139
    139140#ifndef BUILDING_ON_TIGER
  • trunk/WebCore/platform/mac/WebCoreSystemInterface.mm

    r45474 r45565  
    8080id (*wkCreateNSURLConnectionDelegateProxy)(void);
    8181unsigned (*wkInitializeMaximumHTTPConnectionCountPerHost)(unsigned preferredConnectionCount);
     82BOOL (*wkIsLatchingWheelEvent)(NSEvent *);
    8283
    8384#ifndef BUILDING_ON_TIGER
  • trunk/WebKit/mac/ChangeLog

    r45541 r45565  
     12009-07-06  Anders Carlsson  <andersca@apple.com>
     2
     3        Reviewed by Adele Peterson.
     4
     5        Initialize wkIsLatchingWheelEvent.
     6       
     7        * WebCoreSupport/WebSystemInterface.m:
     8        (InitWebCoreSystemInterface):
     9
    1102009-07-03  Dan Bernstein  <mitz@apple.com>
    211
  • trunk/WebKit/mac/WebCoreSupport/WebSystemInterface.m

    r45348 r45565  
    6161    INIT(HitTestMediaUIPart);
    6262    INIT(InitializeMaximumHTTPConnectionCountPerHost);
     63    INIT(IsLatchingWheelEvent);
    6364    INIT(MeasureMediaUIPart);
    6465    INIT(PopupMenu);
Note: See TracChangeset for help on using the changeset viewer.