Changeset 42134 in webkit


Ignore:
Timestamp:
Mar 31, 2009 12:50:56 PM (15 years ago)
Author:
dino@apple.com
Message:

2009-03-31 Dean Jackson <dino@apple.com>

Reviewed by Simon Fraser.

https://bugs.webkit.org/show_bug.cgi?id=24955

Spacebar didn't play/pause in standalone MediaDocument

  • loader/MediaDocument.cpp: (WebCore::MediaDocument::defaultEventHandler):
Location:
trunk/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r42133 r42134  
     12009-03-31  Dean Jackson  <dino@apple.com>
     2
     3        Reviewed by Simon Fraser.
     4
     5        https://bugs.webkit.org/show_bug.cgi?id=24955
     6
     7        Spacebar didn't play/pause in standalone MediaDocument
     8
     9        * loader/MediaDocument.cpp:
     10        (WebCore::MediaDocument::defaultEventHandler):
     11
    1122009-03-31  Alpha Lam  <hclam@chromium.org>
    213
  • trunk/WebCore/loader/MediaDocument.cpp

    r41907 r42134  
    3939#include "HTMLNames.h"
    4040#include "HTMLVideoElement.h"
     41#include "KeyboardEvent.h"
    4142#include "MainResourceLoader.h"
     43#include "NodeList.h"
    4244#include "Page.h"
    4345#include "SegmentedString.h"
     
    162164        }
    163165    }
     166
     167    if (event->type() == eventNames().keydownEvent && event->isKeyboardEvent()) {
     168        HTMLVideoElement* video;
     169        if (targetNode) {
     170            if (targetNode->hasTagName(videoTag))
     171                video = static_cast<HTMLVideoElement*>(targetNode);
     172            else {
     173                RefPtr<NodeList> nodeList = targetNode->getElementsByTagName("video");
     174                if (nodeList.get()->length() > 0)
     175                    video = static_cast<HTMLVideoElement*>(nodeList.get()->item(0));
     176            }
     177        }
     178        if (video) {
     179            KeyboardEvent* keyboardEvent = static_cast<KeyboardEvent*>(event);
     180            if (keyboardEvent->keyIdentifier() == "U+0020") { // space
     181                if (video->paused()) {
     182                    if (video->canPlay())
     183                        video->play();
     184                } else
     185                    video->pause();
     186                event->setDefaultHandled();
     187            }
     188        }
     189    }
    164190}
    165191
Note: See TracChangeset for help on using the changeset viewer.