SUMMARY When Firefox uses a subsurface to render an extension popup (if the popup fits within the window, generally), then dropping stuff inside the popup doesn't work (gets dropped in the main surface). STEPS TO REPRODUCE 1. On Firefox, install NoScript (https://addons.mozilla.org/en-US/firefox/addon/noscript/). Make sure the toolbar icon is at the right (default position), so that the popup fits in the window by default. 2. Click on the extension button to open the panel 3. Drag any UI element at the top. Doing so shows the "Drop here to hide." box from the extension itself. 4. Move the pointer towards that area that appeared at step 3 (and release it). OBSERVED RESULT The drop gets registered on the main window, a tab appears. EXPECTED RESULT The icon moves. Note that this is also the observed result if you move the extension button to the left on the window (then GTK will use an xdg_popup in order to use move-to-rect). SOFTWARE/OS VERSIONS Operating System: Arch Linux KDE Plasma Version: 6.4.4 KDE Frameworks Version: 6.17.0 Qt Version: 6.9.1 Kernel Version: 6.16.0-arch1-1 (64-bit) Graphics Platform: Wayland
Git commit 8ad4fb88242c937ba4b9e06dc4bb6a143af55309 by Vlad Zahorodnii. Committed on 26/08/2025 at 11:33. Pushed by vladz into branch 'master'. Fix drag-and-drop for subsurfaces If a drag-and-drop operation origanates from a subsurface, kwin will send dnd related events to the main surface. This confuses clients such as Firefox. M +1 -0 autotests/integration/CMakeLists.txt A +981 -0 autotests/integration/dnd_test.cpp [License: GPL(v2.0+)] M +4 -0 autotests/integration/kwin_wayland_test.h M +14 -0 autotests/integration/test_helpers.cpp M +2 -13 autotests/wayland/client/CMakeLists.txt M +0 -166 autotests/wayland/client/test_datadevice.cpp D +0 -751 autotests/wayland/client/test_drag_drop.cpp M +34 -11 src/input.cpp M +2 -15 src/wayland/datadevice.cpp M +1 -1 src/wayland/datadevice.h M +8 -12 src/wayland/seat.cpp M +14 -1 src/wayland/seat.h M +1 -1 src/xwayland/dnd.cpp https://invent.kde.org/plasma/kwin/-/commit/8ad4fb88242c937ba4b9e06dc4bb6a143af55309