Bug 499128 - doing a drag/swipe gesture from a widget to outside of the panel works inconsistently on plasma 6.3 beta and master
Summary: doing a drag/swipe gesture from a widget to outside of the panel works incons...
Status: RESOLVED UPSTREAM
Alias: None
Product: plasmashell
Classification: Plasma
Component: Panel (show other bugs)
Version: 6.2.90
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: regression
Depends on:
Blocks:
 
Reported: 2025-01-25 12:06 UTC by Luis Bocanegra
Modified: 2025-03-05 22:12 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
drag bug test widget (12.90 KB, application/gzip)
2025-01-25 12:06 UTC, Luis Bocanegra
Details
recording of the issue (1.62 MB, image/webp)
2025-01-25 12:08 UTC, Luis Bocanegra
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Luis Bocanegra 2025-01-25 12:06:48 UTC
Created attachment 177661 [details]
drag bug test widget

SUMMARY
Using a MouseArea/PointHandler to simulate a gesture that starts from a widget and ends either within the widget or outside it no no longer works most of the time. Resulting in a either rejected mouse after it starts moving or ending the events early when the cursor is close to the edges of the panel.

STEPS TO REPRODUCE
1.  Install the attached widget and add it to a panel
2.  Try dragging out from using the mouse starting from different points of the widget and to outside and within its area a couple of times
3. Place the widget on the desktop and repeat the process

OBSERVED RESULT
The widget turns red indicating that the "gesture" has ended prematurely, I noticed that the closer to the edge of the widget the earlier it ends.

Additionally triggering this state and then moving to a second instance of the widget in the panel will make the gesture work on that instance when initiated closer to its center while the other keeps rejecting the events, and trying to drag from the border of the panel will break subsequent drags even when they start from the center on the second instance while the first instance starts working again, this is super weird.

This strange behavior does not happen if the widget is placed on the desktop

EXPECTED RESULT

The gestures should work as they did in plasma 6.2, unfortunately I do not have an estimate of when this started happening.

SOFTWARE/OS VERSIONS
Operating System: Arch Linux 
KDE Plasma Version: 6.3.80
KDE Frameworks Version: 6.11.0
Qt Version: 6.8.1
Kernel Version: 6.12.10-arch1-1 (64-bit)
Graphics Platform: Wayland
Processors: 12 × Intel® Core™ i7-9750H CPU @ 2.60GHz
Memory: 31.2 GiB of RAM
Graphics Processor: Intel® UHD Graphics 630

ADDITIONAL INFORMATION
The reason I noticed this issue is because it breaks my third party add-on Panel Spacer Extended, a spacer with moouse gestures https://store.kde.org/p/2128047, by default dragging up or down it moves the active/top window.
Comment 1 Luis Bocanegra 2025-01-25 12:08:27 UTC
Created attachment 177662 [details]
recording of the issue
Comment 2 Nate Graham 2025-01-28 17:39:29 UTC
Can reproduce.
Comment 3 Niccolò Venerandi 2025-02-03 15:57:10 UTC
Isn't this a Qt thing? What should Plasma do to address this?
Comment 4 Bug Janitor Service 2025-02-18 03:46:24 UTC
🐛🧹 ⚠️ This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information, then set the bug status to REPORTED. If there is no change for at least 30 days, it will be automatically closed as RESOLVED WORKSFORME.

For more information about our bug triaging procedures, please read https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging.

Thank you for helping us make KDE software even better for everyone!
Comment 5 Luis Bocanegra 2025-02-21 09:27:12 UTC
> Isn't this a Qt thing?

Turns out it is? Building with Qt 6.8.0 brings back the old behavior
Comment 6 antroids 2025-02-23 19:58:39 UTC
The issue is related to the ButtonRebinds plugin for KWin.
I've noticed that the device section of QEventPoint object is different when you start dragging at the edge of the panel and at the rest:
Edge:
 "device": {
...
        "buttonCount": 0,
        "capabilities": 1,
        "maximumPoints": 1,
        "name": "Button rebinding device touchpad",
        "objectName": "",
        "pointerType": 2,
        "seatName": "",
        "systemId": -1,
        "type": 4,
        "uniqueId": {
            "numericId": -1
        }
    },

The rest:
"device": {
...
        "buttonCount": 0,
        "capabilities": 1,
        "maximumPoints": 10,
        "name": "touchpad",
        "objectName": "",
        "pointerType": 2,
        "seatName": "seat0",
        "systemId": 8589934592,
        "type": 4,
        "uniqueId": {
            "numericId": -1
        }
    },


When the "buttonsrebind" is unloaded, dragging wirks fine.
> qdbus6 org.kde.KWin /Plugins UnloadPlugin "buttonsrebind"
Comment 7 antroids 2025-03-01 16:47:06 UTC
Is the ButtonsRebind plugin used somewhere?
If the manual config editing is required to configure the plugin, then it should not be loaded by default.
Comment 8 Niccolò Venerandi 2025-03-05 22:12:54 UTC
> Turns out it is? Building with Qt 6.8.0 brings back the old behavior

Given this, plus the type of bug, I'm pretty sure this is upstream Qt.