Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-14093

Processing of multitouch events is sometimes slow on MacBook with multitouch trackpad when using in QGraphicsView

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P4: Low
    • None
    • 4.7.0
    • None
    • i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)
      Snow leopard 10.6.4, Qt 4.7.0

    Description

      I am trying to implement a pong like game using multitouch on a macbooks touchpad.
      Attached you will find a demo application that shows two approaches to implement moving two elements on the screen using multitouch: Widget based and graphicss scene based. Place the mouse pointer in each of them and try to move two fingers. You will see two rects that move according to your fingers.

      In the widget based approach, this works always as expected. In the graphics view based approach, it works only in lets say 75% cases. In roughly 25% times, there seems to be a limit on how many events are processed per time so it happens that events are delivered long after the fingers have already been released.

      I further observed that the strange behaviour only happens after the second time the graphicsview based widget is used. Please play around with the demo a few times and I hope you can reproduce. Otherwise I'll have to record a video.

      Inverted heaviest stack trace when running native graphicssystem on Mac OS X;

        15 QtGui 164.0  QGraphicsScenePrivate::_q_processDirtyItems()
        14 QtGui 164.0  QGraphicsScene::qt_metacall(QMetaObject::Call, int, void**)
        13 pong 164.0  PongScene::qt_metacall(QMetaObject::Call, int, void**) /Users/hhartz/Downloads/pong/moc_PongScene.cpp:62
        12 QtCore 164.0  QObject::event(QEvent*)
        11 QtGui 164.0  QGraphicsScene::event(QEvent*)
        10 pong 164.0  PongScene::event(QEvent*) /Users/hhartz/Downloads/pong/PongScene.cpp:19
         9 QtGui 164.0  QApplicationPrivate::notify_helper(QObject*, QEvent*)
         8 QtGui 164.0  QApplication::notify(QObject*, QEvent*)
         7 QtCore 164.0  QCoreApplication::notifyInternal(QObject*, QEvent*)
         6 QtCore 164.0  QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)
         5 QtGui 164.0  QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
         4 QtCore 164.0  QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
         3 QtCore 164.0  QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
         2 QtCore 164.0  QCoreApplication::exec()
         1 pong 164.0  main /Users/hhartz/Downloads/pong/main.cpp:4
         0 pong 164.0  start
      

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              Unassigned Unassigned
              axeljaeger Axel Jäger
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes