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

QDropEvent::setDropAction(Qt::DropAction) is ignored on macOS

XMLWordPrintable

    • macOS

      When dragging from a QWidget supporting both Qt::CopyAction and Qt::MoveAction, the source widget always receives Qt::MoveAction regardless of what the drop target widget specifies in dropEvent().

      Eg: In the drop target widget:

      void widget::dropEvent(QDropEvent *event)
      {
       event->setDropAction(Qt::CopyAction);
       event->accept();
      }
      

      The overridden drop action is never propagated back to the widget which initiated the drag.

      This results in the drag source removing the item instead of copying it.

      It is particularly obvious when dragging from QAbstractItemView widgets, as they will automatically remove the dragged item.

      It appears that in qnsview_dragging.mm, (BOOL)performDragOperation:(id <NSDraggingInfo>)sender is discarding the accepted_action returned from the QWindowSystemInterface::handleDrop() calls

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

            vhilshei Volker Hilsheimer
            rthompson Richard Thompson
            Veli-Pekka Heinonen Veli-Pekka Heinonen
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes