Bug 484546 - Plasma crashes when drag'n'dropping file from notifications menu
Summary: Plasma crashes when drag'n'dropping file from notifications menu
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Notifications (show other bugs)
Version: 6.0.2
Platform: openSUSE Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: regression
Depends on:
Blocks:
 
Reported: 2024-03-26 19:39 UTC by Petrov Egor
Modified: 2024-05-17 22:54 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.1


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Petrov Egor 2024-03-26 19:39:44 UTC
SUMMARY
Some applications, like Spectacle, Ark and Firefox, show notifications with draggable files. For instance, if you take a screenshot using a hotkey, you will get this type of notification. However, if you wait until the notification disappears in the notifications applet and then try to drag'n'drop file, Plasma crashes.

STEPS TO REPRODUCE
1. Get notification with draggable file attachment (make a screenshot or download something in Firefox)
2. Wait until notification hides
3. Try to drag file from notifications applet

OBSERVED RESULT
Plasma crashes.

EXPECTED RESULT
Normal drag'n'drop

SOFTWARE/OS VERSIONS
Operating System: openSUSE Tumbleweed 20240321
KDE Plasma Version: 6.0.2
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.2
Kernel Version: 6.4.12-1-default (64-bit)
Graphics Platform: Wayland

Bug were also reproduced with this configuration (https://t.me/kde_ru/268085):
Operating System: Manjaro Linux 
KDE Plasma Version: 6.0.2
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.2
Kernel Version: 6.8.1-2-MANJARO (64-bit)
Graphics Platform: Wayland


ADDITIONAL INFORMATION
Also seen this bug on Plasma 5 with Wayland session.
Also sorry for bad English, first paragraph was written with machine translator.
Comment 1 Bug Janitor Service 2024-05-09 09:43:20 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/4295
Comment 2 Kai Uwe Broulik 2024-05-14 12:47:07 UTC
Git commit bf8545946cc340c262911c0ba94e28661a7feb8a by Kai Uwe Broulik.
Committed on 14/05/2024 at 12:30.
Pushed by broulik into branch 'master'.

Notifications: Restore custom DragHelper

When the notification popup closes, the ListView mode is unloaded to
save some resources. On Wayland, during drag and drop another window
might be raised and focussed causing the notification popup to close.

QtQuick's built-in drag handling does not take kind to having the
item it's operating on destroyed behind its back, particularly because
it uses a freaking' nested event loop inside of dragStarted!

Restore the original DragHandler which detaches the drag operation
entirely from the item that triggered it. It also creates a proper
drag pixmap for dragging the file icon and keeps it for the entire
duration of the drag.

As a bonus this also lets us export the URL to the Document portal
to enable drag and drop of thumbnails to sandboxed apps.
Related: bug 486665

M  +3    -0    applets/notifications/CMakeLists.txt
A  +84   -0    applets/notifications/draghelper.cpp     [License: GPL(3+eV) GPL(v3.0) GPL(v2.0)]
A  +42   -0    applets/notifications/draghelper.h     [License: GPL(3+eV) GPL(v3.0) GPL(v2.0)]
M  +4    -0    applets/notifications/notificationapplet.cpp
M  +10   -9    applets/notifications/package/contents/ui/DraggableFileArea.qml
M  +2    -5    applets/notifications/package/contents/ui/JobItem.qml
M  +2    -5    applets/notifications/package/contents/ui/ThumbnailStrip.qml

https://invent.kde.org/plasma/plasma-workspace/-/commit/bf8545946cc340c262911c0ba94e28661a7feb8a