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

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



    • Linux/Yocto


      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.



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



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



              Gerrit Reviews

                There are no open Gerrit changes