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

Gesture event delivery does not respect isPanel() in QGraphicsScene

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 4.6.3
    • 4.6.0, 4.6.1
    • Widgets: GraphicsView
    • None
    • 43233652e753ffa2b97a8b6d56ae53bb02cbad6b

    Description

      When delivering gesture events in graphics scene, the delivery does not stop at the first item that is a panel.

      Fix proposal (that does not account for attribute change during the actual event sending loop, because only items that grab gestures is available at that time)

      void QGraphicsScenePrivate::getGestureTargets:
      
               for (int j = 0; j < items.size(); ++j) {
                   QGraphicsObject *item = items.at(j)->toGraphicsObject();
                   if (item) {
                        QGraphicsItemPrivate *d = item->QGraphicsItem::d_func();
                        if (d->gestureContext.contains(gestureType)) {
                            result.append(item);
                        }
                   }
                   if(items.at(j)->isPanel())
                         break;
               }
      

      Attachments

        Issue Links

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

          Activity

            People

              dzyubenk Denis Dzyubenko (Inactive)
              mikkohar Mikko Harju
              Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes