Changeset 60959 in webkit
- Timestamp:
- Jun 10, 2010 8:45:48 AM (14 years ago)
- Location:
- trunk/WebKitTools
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebKitTools/ChangeLog
r60938 r60959 1 2010-06-10 Diego Gonzalez <diegohcg@webkit.org> 2 3 Reviewed by Kenneth Rohde Christiansen. 4 5 [Qt] DRT EventSender support to graphics mouse events activation 6 https://bugs.webkit.org/show_bug.cgi?id=40017 7 8 * DumpRenderTree/qt/EventSenderQt.cpp: 9 (EventSender::mouseDown): 10 (EventSender::mouseUp): 11 (EventSender::mouseMoveTo): 12 (EventSender::keyDown): 13 (EventSender::contextClick): 14 (EventSender::sendTouchEvent): 15 (EventSender::sendOrQueueEvent): 16 (EventSender::eventFilter): 17 (EventSender::createGraphicsSceneMouseEvent): 18 (EventSender::sendEvent): 19 * DumpRenderTree/qt/EventSenderQt.h: 20 (EventSender::isGraphicsBased): 21 1 22 2010-06-09 Adam Barth <abarth@webkit.org> 2 23 -
trunk/WebKitTools/DumpRenderTree/qt/EventSenderQt.cpp
r60415 r60959 30 30 #include "EventSenderQt.h" 31 31 32 //#include <QtDebug> 33 32 #include <QGraphicsSceneMouseEvent> 34 33 #include <QtTest/QtTest> 35 34 … … 112 111 113 112 // qDebug() << "EventSender::mouseDown" << frame; 114 QMouseEvent* event; 115 event = new QMouseEvent((m_clickCount == 2) ? QEvent::MouseButtonDblClick : 113 QEvent* event; 114 if (isGraphicsBased()) { 115 event = createGraphicsSceneMouseEvent((m_clickCount == 2) ? 116 QEvent::GraphicsSceneMouseDoubleClick : QEvent::GraphicsSceneMousePress, 117 m_mousePos, m_mousePos, mouseButton, m_mouseButtons, Qt::NoModifier); 118 } else { 119 event = new QMouseEvent((m_clickCount == 2) ? QEvent::MouseButtonDblClick : 116 120 QEvent::MouseButtonPress, m_mousePos, m_mousePos, 117 121 mouseButton, m_mouseButtons, Qt::NoModifier); 122 } 118 123 119 124 sendOrQueueEvent(event); … … 147 152 148 153 // qDebug() << "EventSender::mouseUp" << frame; 149 QMouseEvent* event = new QMouseEvent(QEvent::MouseButtonRelease, m_mousePos, m_mousePos, mouseButton, m_mouseButtons, Qt::NoModifier); 154 QEvent* event; 155 if (isGraphicsBased()) { 156 event = createGraphicsSceneMouseEvent(QEvent::GraphicsSceneMouseRelease, 157 m_mousePos, m_mousePos, mouseButton, m_mouseButtons, Qt::NoModifier); 158 } else { 159 event = new QMouseEvent(QEvent::MouseButtonRelease, 160 m_mousePos, m_mousePos, mouseButton, m_mouseButtons, Qt::NoModifier); 161 } 162 150 163 sendOrQueueEvent(event); 151 164 } … … 155 168 // qDebug() << "EventSender::mouseMoveTo" << x << y; 156 169 m_mousePos = QPoint(x, y); 157 QMouseEvent* event = new QMouseEvent(QEvent::MouseMove, m_mousePos, m_mousePos, Qt::NoButton, m_mouseButtons, Qt::NoModifier); 170 171 QEvent* event; 172 if (isGraphicsBased()) { 173 event = createGraphicsSceneMouseEvent(QEvent::GraphicsSceneMouseMove, 174 m_mousePos, m_mousePos, Qt::NoButton, m_mouseButtons, Qt::NoModifier); 175 } else { 176 event = new QMouseEvent(QEvent::MouseMove, 177 m_mousePos, m_mousePos, Qt::NoButton, m_mouseButtons, Qt::NoModifier); 178 } 179 158 180 sendOrQueueEvent(event); 159 181 } … … 307 329 } 308 330 QKeyEvent event(QEvent::KeyPress, code, modifs, s); 309 QApplication::sendEvent(m_page, &event);331 sendEvent(m_page, &event); 310 332 QKeyEvent event2(QEvent::KeyRelease, code, modifs, s); 311 QApplication::sendEvent(m_page, &event2);333 sendEvent(m_page, &event2); 312 334 } 313 335 … … 315 337 { 316 338 QMouseEvent event(QEvent::MouseButtonPress, m_mousePos, Qt::RightButton, Qt::RightButton, Qt::NoModifier); 317 QApplication::sendEvent(m_page, &event);339 sendEvent(m_page, &event); 318 340 QMouseEvent event2(QEvent::MouseButtonRelease, m_mousePos, Qt::RightButton, Qt::RightButton, Qt::NoModifier); 319 QApplication::sendEvent(m_page, &event2);341 sendEvent(m_page, &event2); 320 342 QContextMenuEvent event3(QContextMenuEvent::Mouse, m_mousePos); 321 QApplication::sendEvent(m_page->view(), &event3);343 sendEvent(m_page->view(), &event3); 322 344 } 323 345 … … 432 454 QTouchEvent event(type, QTouchEvent::TouchScreen, m_touchModifiers); 433 455 event.setTouchPoints(m_touchPoints); 434 QApplication::sendEvent(m_page, &event);456 sendEvent(m_page, &event); 435 457 QList<QTouchEvent::TouchPoint>::Iterator it = m_touchPoints.begin(); 436 458 while (it != m_touchPoints.end()) { … … 494 516 // To be safe and avoid a deadlock, this event is queued. 495 517 if (endOfQueue == startOfQueue && !eventQueue[endOfQueue].m_delay && (!(m_mouseButtonPressed && (m_eventLoop && event->type() == QEvent::MouseButtonRelease)))) { 496 QApplication::sendEvent(m_page->view(), event);518 sendEvent(m_page->view(), event); 497 519 delete event; 498 520 return; … … 542 564 return true; 543 565 case QEvent::MouseButtonPress: 566 case QEvent::GraphicsSceneMousePress: 544 567 m_mouseButtonPressed = true; 545 568 break; 546 569 case QEvent::MouseMove: 570 case QEvent::GraphicsSceneMouseMove: 547 571 if (m_mouseButtonPressed) 548 572 m_drag = true; 549 573 break; 550 574 case QEvent::MouseButtonRelease: 575 case QEvent::GraphicsSceneMouseRelease: 551 576 m_mouseButtonPressed = false; 552 577 m_drag = false; … … 563 588 m_clickTimer.stop(); 564 589 } 590 591 QGraphicsSceneMouseEvent* EventSender::createGraphicsSceneMouseEvent(QEvent::Type type, const QPoint& pos, const QPoint& screenPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers) 592 { 593 QGraphicsSceneMouseEvent* event; 594 event = new QGraphicsSceneMouseEvent(type); 595 event->setPos(pos); 596 event->setScreenPos(screenPos); 597 event->setButton(button); 598 event->setButtons(buttons); 599 event->setModifiers(modifiers); 600 601 return event; 602 } 603 604 void EventSender::sendEvent(QObject* receiver, QEvent* event) 605 { 606 if (WebCore::WebViewGraphicsBased* view = qobject_cast<WebCore::WebViewGraphicsBased*>(receiver)) 607 view->scene()->sendEvent(view->graphicsView(), event); 608 else 609 QApplication::sendEvent(receiver, event); 610 } -
trunk/WebKitTools/DumpRenderTree/qt/EventSenderQt.h
r60415 r60959 29 29 #ifndef EventSenderQt_h 30 30 #define EventSenderQt_h 31 32 33 #include "DumpRenderTreeQt.h" 31 34 32 35 #include <QApplication> … … 84 87 85 88 private: 89 bool isGraphicsBased() const { return qobject_cast<WebCore::WebViewGraphicsBased*>(m_page->view()); } 90 QGraphicsSceneMouseEvent* createGraphicsSceneMouseEvent(QEvent::Type, const QPoint& pos, const QPoint& screenPos, Qt::MouseButton, Qt::MouseButtons, Qt::KeyboardModifiers); 91 void sendEvent(QObject* receiver, QEvent* event); 92 93 private: 86 94 void sendTouchEvent(QEvent::Type); 87 95 void sendOrQueueEvent(QEvent*);
Note: See TracChangeset
for help on using the changeset viewer.