STEPS TO REPRODUCE 1. start Wayland session 2. drag some file/folder to desktop 3. press ESC while you are dragging the icon OBSERVED RESULT Dragging operation is not aborted EXPECTED RESULT Dragging operation is aborted like on X11 SOFTWARE/OS VERSIONS Operating System: Arch Linux KDE Plasma Version: 5.15.2 KDE Frameworks Version: 5.56.0 Qt Version: 5.12.1
correcting step 3: 3. press ESC while you are dragging the icon and you are hovering the desktop Operating System: Arch Linux KDE Plasma Version: 5.16.2 KDE Frameworks Version: 5.59.0 Qt Version: 5.13.0
This could be a Kwin bug: https://gitlab.com/kwinft/kwinft/-/issues/45 But I don't know if it has been reported in mainline Kwin.
I can consistently reproduce this on current Plasma from master branch.
I experience the same. Aborting with ESC works for me when the mouse is inside the dolphin window again. Just not when it is outside.
Still seeing this issue with KDE neon 5.21.1.
Can confirm. Seems like the desktop needs to handle the escape key too.
Theory without looking at code, the panel does not do keyboard focus so we can't escape?
Can confirm on latest tumbleweed (KDE 5.23.5 IIRC)
esc to cancel works only internally in the client, doesn't between any two arbitrary clients, regardless the toolkit looking on what gnome does, cancel on esc seems to be managed on mutter side, in meta-wayland-data-device.c static gboolean keyboard_drag_grab_key (MetaWaylandKeyboardGrab *grab, const ClutterEvent *event) { if (event->key.keyval == CLUTTER_KEY_Escape) { MetaWaylandDragGrab *drag_grab; drag_grab = wl_container_of (grab, drag_grab, keyboard_grab); meta_wayland_data_source_cancel (drag_grab->drag_data_source); meta_wayland_data_source_set_current_offer (drag_grab->drag_data_source, NULL); meta_dnd_actor_drag_finish (META_DND_ACTOR (drag_grab->feedback_actor), FALSE); drag_grab->feedback_actor = NULL; data_device_end_drag_grab (drag_grab); return TRUE; } return FALSE; } I think we should do it server side as well in kwin
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwayland-server/-/merge_requests/356
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/2083
Git commit 7c09b4637c9ef9d4e326443a41edd2216de438a4 by Marco Martin. Committed on 03/03/2022 at 09:09. Pushed by mart into branch 'master'. Add a methood to fore cancel any drag in progress This is needed to cancel drags by pressing Escape which is resposibility of the compositor M +17 -9 src/server/seat_interface.cpp M +5 -0 src/server/seat_interface.h M +2 -2 src/server/seat_interface_p.h https://invent.kde.org/plasma/kwayland-server/commit/7c09b4637c9ef9d4e326443a41edd2216de438a4
Git commit e00d83670847c19c7f92e13b2bb1ef18ae093964 by Marco Martin. Committed on 03/03/2022 at 09:54. Pushed by mart into branch 'master'. Force cancel of any drag in progress when Escape is pressed when escape is pressed when dragging between different clients, cancelling any drag is compositor's responsibility M +16 -0 src/input.cpp https://invent.kde.org/plasma/kwin/commit/e00d83670847c19c7f92e13b2bb1ef18ae093964
This bug persists. Drag-and-rop is completed instead of aborted when I press ESC key. And now I can reproduce even on X11. Operating System: KDE neon Unstable Edition KDE Plasma Version: 5.24.80 KDE Frameworks Version: 5.92.0 Qt Version: 5.15.3 Graphics Platform: Wayland
Cannot reproduce that with current git master. It could be a separate thing. Could you file a new bug report for it?
(In reply to Nate Graham from comment #15) > Cannot reproduce that with current git master. It could be a separate thing. > Could you file a new bug report for it? reported as bug 453981
In my case Esc only cancels the drag and drop operation if pressed after the mouse button has been released: as long as the button is pressed, Esc presses are ignored (I am pressing Esc repeatedly in this screen recording while the little green "+" icon is shown: https://photos.app.goo.gl/iWgFTKRoC6vX6J7F6