Changeset 62115 in webkit


Ignore:
Timestamp:
Jun 29, 2010 7:03:59 AM (14 years ago)
Author:
diegohcg@webkit.org
Message:

2010-06-29 Diego Gonzalez <diegohcg@webkit.org>

Reviewed by Simon Hausmann.

[Qt] Deal with postEvent in case of graphics based DRT
https://bugs.webkit.org/show_bug.cgi?id=41174

QGraphicsScene does not have a postEvent method, so make scene
send the event, in case of graphics based DRT, and delete it after that.

  • DumpRenderTree/qt/EventSenderQt.cpp: (EventSender::scheduleAsynchronousClick): (EventSender::replaySavedEvents): (EventSender::postEvent):
  • DumpRenderTree/qt/EventSenderQt.h:
Location:
trunk/WebKitTools
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKitTools/ChangeLog

    r62113 r62115  
     12010-06-29  Diego Gonzalez  <diegohcg@webkit.org>
     2
     3        Reviewed by Simon Hausmann.
     4
     5        [Qt] Deal with postEvent in case of graphics based DRT
     6        https://bugs.webkit.org/show_bug.cgi?id=41174
     7
     8        QGraphicsScene does not have a postEvent method, so make scene
     9        send the event, in case of graphics based DRT, and delete it after that.
     10
     11        * DumpRenderTree/qt/EventSenderQt.cpp:
     12        (EventSender::scheduleAsynchronousClick):
     13        (EventSender::replaySavedEvents):
     14        (EventSender::postEvent):
     15        * DumpRenderTree/qt/EventSenderQt.h:
     16
    1172010-06-29  Diego Gonzalez  <diegohcg@webkit.org>
    218
  • trunk/WebKitTools/DumpRenderTree/qt/EventSenderQt.cpp

    r61276 r62115  
    369369{
    370370    QMouseEvent* event = new QMouseEvent(QEvent::MouseButtonPress, m_mousePos, Qt::LeftButton, Qt::RightButton, Qt::NoModifier);
    371     QApplication::postEvent(m_page, event);
     371    postEvent(m_page, event);
    372372    QMouseEvent* event2 = new QMouseEvent(QEvent::MouseButtonRelease, m_mousePos, Qt::LeftButton, Qt::RightButton, Qt::NoModifier);
    373     QApplication::postEvent(m_page, event2);
     373    postEvent(m_page, event2);
    374374}
    375375
     
    553553        while (!eventQueue[startOfQueue].m_delay && startOfQueue < endOfQueue) {
    554554            QEvent* ev = eventQueue[startOfQueue++].m_event;
    555             QApplication::postEvent(m_page->view(), ev); // ev deleted by the system
     555            postEvent(m_page->view(), ev);
    556556        }
    557557        if (startOfQueue == endOfQueue) {
     
    644644        QApplication::sendEvent(receiver, event);
    645645}
     646
     647void EventSender::postEvent(QObject* receiver, QEvent* event)
     648{
     649    // QGraphicsScene does not have a postEvent method, so send the event in this case
     650    // and delete it after that.
     651    if (WebCore::WebViewGraphicsBased* view = qobject_cast<WebCore::WebViewGraphicsBased*>(receiver)) {
     652        view->scene()->sendEvent(view->graphicsView(), event);
     653        delete event;
     654    } else
     655        QApplication::postEvent(receiver, event); // event deleted by the system
     656}
  • trunk/WebKitTools/DumpRenderTree/qt/EventSenderQt.h

    r61276 r62115  
    9191    QGraphicsSceneWheelEvent* createGraphicsSceneWheelEvent(QEvent::Type, const QPoint& pos, const QPoint& screenPos, int delta, Qt::KeyboardModifiers, Qt::Orientation);
    9292    void sendEvent(QObject* receiver, QEvent* event);
     93    void postEvent(QObject* receiver, QEvent* event);
    9394
    9495private:
Note: See TracChangeset for help on using the changeset viewer.