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

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

        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