Details
-
Suggestion
-
Status: Reported
-
P2: Important
-
Resolution: Unresolved
-
5.12.9, 5.15.1
-
None
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.