Changeset 55843 in webkit


Ignore:
Timestamp:
Mar 11, 2010 7:25:15 AM (14 years ago)
Author:
benm@google.com
Message:

[Android] The platform touch events on Android are missing support
for key modifiers.
https://bugs.webkit.org/show_bug.cgi?id=35521

Reviewed by Jeremy Orlow.

Add support in PlatformToucHEventAndroid for the platform supplying
key modifiers with touch events.

Fixes Android so it now passes basic-single-touch-events.html.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleTouchEvent): Fix two compiler warnings.

  • platform/PlatformTouchEvent.h:

(WebCore::PlatformTouchEvent::PlatformTouchEvent): Add support for

key modifiers on Android.

  • platform/android/PlatformTouchEventAndroid.cpp:

(WebCore::PlatformTouchEvent::PlatformTouchEvent): ditto.

Location:
trunk/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r55841 r55843  
     12010-03-10  Ben Murdoch  <benm@google.com>
     2
     3        Reviewed by Jeremy Orlow.
     4
     5        [Android] The platform touch events on Android are missing support
     6        for key modifiers.
     7        https://bugs.webkit.org/show_bug.cgi?id=35521
     8
     9        Add support in PlatformToucHEventAndroid for the platform supplying
     10        key modifiers with touch events.
     11
     12        Fixes Android so it now passes basic-single-touch-events.html.
     13
     14        * page/EventHandler.cpp:
     15        (WebCore::EventHandler::handleTouchEvent): Fix two compiler warnings.
     16        * platform/PlatformTouchEvent.h:
     17        (WebCore::PlatformTouchEvent::PlatformTouchEvent): Add support for
     18            key modifiers on Android.
     19        * platform/android/PlatformTouchEventAndroid.cpp:
     20        (WebCore::PlatformTouchEvent::PlatformTouchEvent): ditto.
     21
    1222010-03-10  Steve Block  <steveblock@google.com>
    223
  • trunk/WebCore/page/EventHandler.cpp

    r55737 r55843  
    26112611    RefPtr<TouchList> targetTouches = TouchList::create();
    26122612
    2613     for (int i = 0; i < touches->length(); ++i) {
     2613    for (unsigned i = 0; i < touches->length(); ++i) {
    26142614        if (touches->item(i)->target()->toNode()->isSameNode(touchTarget->target()->toNode()))
    26152615            targetTouches->append(touches->item(i));
     
    26302630    AtomicString* eventName = 0;
    26312631
    2632     for (int i = 0; i < points.size(); ++i) {
     2632    for (unsigned i = 0; i < points.size(); ++i) {
    26332633        const PlatformTouchPoint& point = points[i];
    26342634        IntPoint pagePoint = documentPointForWindowPoint(m_frame, point.pos());
     
    27102710                                                   0, 0, 0, 0, event.ctrlKey(), event.altKey(), event.shiftKey(),
    27112711                                                   event.metaKey());
    2712 
    27132712        ExceptionCode ec = 0;
    27142713        touchEventTarget->dispatchEvent(cancelEv.get(), ec);
  • trunk/WebCore/platform/PlatformTouchEvent.h

    r55572 r55843  
    5757    PlatformTouchEvent(QTouchEvent*);
    5858#elif PLATFORM(ANDROID)
    59     PlatformTouchEvent(const IntPoint& windowPos, TouchEventType, PlatformTouchPoint::State);
     59    PlatformTouchEvent(const IntPoint& windowPos, TouchEventType, PlatformTouchPoint::State, int metaState);
    6060#endif
    6161
  • trunk/WebCore/platform/android/PlatformTouchEventAndroid.cpp

    r53994 r55843  
    3131namespace WebCore {
    3232
    33 PlatformTouchEvent::PlatformTouchEvent(const IntPoint& windowPos, TouchEventType type, PlatformTouchPoint::State state)
     33// These values should be kept in sync with those defined in the android.view.KeyEvent class from the Android SDK.
     34enum AndroidMetaKeyState {
     35    META_SHIFT_ON = 0x01,
     36    META_ALT_ON = 0x02,
     37    META_SYM_ON = 0x04
     38};
     39
     40PlatformTouchEvent::PlatformTouchEvent(const IntPoint& windowPos, TouchEventType type, PlatformTouchPoint::State state, int metaState)
    3441    : m_type(type)
    35     , m_ctrlKey(false)
    36     , m_altKey(false)
    37     , m_shiftKey(false)
    3842    , m_metaKey(false)
    3943{
    4044    m_touchPoints.append(PlatformTouchPoint(windowPos, state));
     45
     46    m_altKey = metaState & META_ALT_ON;
     47    m_shiftKey = metaState & META_SHIFT_ON;
     48    m_ctrlKey = metaState & META_SYM_ON;
    4149}
    4250
Note: See TracChangeset for help on using the changeset viewer.