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

Drag and drop with pixmap laggy on KDE

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P3: Somewhat important
    • 6.5.0 Beta1
    • 6.2.1
    • GUI: Drag and Drop
    • Arch Linux KDE Plasma 5.23.2, Qt 6.2.1, Compositor enabled, Morphing Popups Effect enabled
    • Linux/X11
    • 180b496b53 (qt/qtbase/dev) 180b496b53 (qt/tqtc-qtbase/dev)

    Description

      Drag and drop is very sluggish and laggy when attaching a Pixmap to the drag and when having the compositor enabled on KDE. This is because KDE animates the position of all tooltip windows, which means that KDE interpolates the position of the image, which causes very high latency.

      This is because Qt sets the Qt::ToolTip flag for QShapedPixmapWindow here: https://code.woboq.org/qt5/qtbase/src/gui/kernel/qshapedpixmapdndwindow.cpp.html#59

       setFlags(Qt::ToolTip | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint | Qt::WindowTransparentForInput | Qt::WindowDoesNotAcceptFocus);
      

      In my opinion, it should not set the Qt::ToolTip flag, as this is not a tooltip, but a pixmap that follows the cursor across the whole desktop. Would it be a problem if that specific flag was removed?

       

      Related Qt forum post from 2016: https://forum.qt.io/topic/73975/qml-drag-drop-starts-late-lags-behind-and-is-sluggish

       

      The relevant source code of the KDE compositor animation can be found here: https://github.com/KDE/kwin/blob/master/src/effects/morphingpopups/package/contents/code/morphingpopups.js#L20

       

      The imageSource example right from the Qt docs is a minimal reproducable example to cause the high latency of the drag and drop image: https://doc-snapshots.qt.io/qt6-dev/qml-qtquick-drag.html#imageSource-attached-prop

      Attachments

        Issue Links

          Activity

            People

              vimpostor Magnus Groß
              vimpostor Magnus Groß
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: