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

Drag and drop with pixmap laggy on KDE

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: P3: Somewhat important 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)

      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

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

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

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes