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

EGLFS QPA plugin missing implementation for drag which causes segfault

    XMLWordPrintable

Details

    Description

      EGLFS (so as minimalegl,directfb,linuxfb) is missing the implementation of drag feature and by default

      QPlatformDrag *QPlatformIntegration::drag() const

      { return 0; }

      so QGuiApplicationPrivate::platformIntegration()>drag() is 0 and it is causing crash in QDropEvent::QDropEvent() function default_action = QGuiApplicationPrivate::platformIntegration()>drag()->defaultAction(act, modifiers);

      Solution proposals:
      1., Implementing drag function to eglfs (and all the other plugins) using QSimpleDrag and add null pointer checking to QDropEvent::QDropEvent() and maybe to some other places wherever it is used.

      QPlatformDrag *QEglFSIntegration::drag() const
      {
      static QSimpleDrag *drag = 0;
      if (!drag)

      { drag = new QSimpleDrag; }

      return drag;
      }

      Works for me.

      2., Move QSimpleDrag and QBaseDrag to QtGui from QtPlatformSupport module and QPlatformIntegration::drag() would return it by default.

      Attachments

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

        Activity

          People

            lagocs Laszlo Agocs
            qtcomsupport Qt Support
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes