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

QML Drag.startDrag() does not work at all on EGLFS

    XMLWordPrintable

Details

    • Linux/Yocto

    Description

      Calling Drag.startDrag (https://doc.qt.io/qt-5/qml-qtquick-drag.html#startDrag-method)

      always crashes on EGLFS because it is attempted to create a QRasterWindow which is not possible on EGLFS platform. Hence, the app says goodbye with "EGLFS: OpenGL windows cannot be mixed with others." Backtrace is attached.

      The QRasterWindow is used for the Drag icon, but even if I do not have a drag icon and the pixmap of the raster window is empty, the window will be created (there is a TODO in gui/kernel/qsimpledrag.cpp // ### TODO Check if its really necessary to have m_drag_icon_window
      // when QDrag is used without a pixmap - QDrag::setPixmap())

      I am working on a customer project where they have parametrise machine settings via Drag and Drag and it stops them from getting the machines to be delivered.
      However, I have a workaround for the specific customer in place: You need to apply the attached patch to qtbase and use the DragImageItem, a QQuickPaintedItem which I wrote to have a replacement for the drag icon. Note that the patch is just a workaround for the customer, a real fix for Qt it is not that trivial since the raster window needs to be replaced with an OpenGL surface.

       

      Attachments

        For Gerrit Dashboard: QTBUG-87765
        # Subject Branch Project Status CR V

        Activity

          People

            lagocs Laszlo Agocs
            michaelwinkelmann Michael Winkelmann
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes