mutter/src/wayland
Carlos Garnacho 698fe3f1a9 wayland: Avoid automatically decoupling source/offer after grab
In the case that DnD is performed and succeeds, we want to release
the grab early, and let the transfer IPC happen in the back. For
that to happen without a hitch, drag source and offer must be left
related to each other after undoing the grab, even though the default
ungrabbing code does that automatically (indirectly, by unsetting the
drag focus).

In these cases, we used to manually unset the current source, so
this decoupling was skipped. Notably, one missed case is X11 DnD,
so we might end up with the situation there that DnD did succeed,
transfer is ongoing, but the source and offer are already decoupled,
this confused the machinery and missed the finishing XdndFinished
to be emitted to the X11 drag source.

The prior commits prepared for this source/offer decoupling being
a manual operation, this commit avoids doing this automatically
when ungrabbing.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1720>
2021-02-09 19:33:13 +00:00
..
protocol wayland/gtk-shell: Add an explicit gtk-shell surface release request 2021-01-29 16:21:16 +00:00
meta-cursor-sprite-wayland.c cursor-renderer/native: Fetch instead of pass wl_buffer when realizing 2018-06-15 19:09:53 +00:00
meta-cursor-sprite-wayland.h cursor-renderer/native: Fetch instead of pass wl_buffer when realizing 2018-06-15 19:09:53 +00:00
meta-pointer-confinement-wayland.c backends: Delegate pointer confinements to an impl object 2020-11-27 15:14:33 +00:00
meta-pointer-confinement-wayland.h backends: Delegate pointer confinements to an impl object 2020-11-27 15:14:33 +00:00
meta-pointer-lock-wayland.c clutter: Drop clutter_input_device_get_coords() method 2020-11-27 15:14:33 +00:00
meta-pointer-lock-wayland.h backends: Delegate pointer confinements to an impl object 2020-11-27 15:14:33 +00:00
meta-selection-source-wayland-private.h wayland: Move MetaWaylandDataSourcePrimary to its own file 2020-04-17 00:46:23 +02:00
meta-selection-source-wayland.c wayland: Simplify MetaSelectionSourceWayland 2019-10-11 23:04:01 +02:00
meta-wayland-actor-surface.c wayland/actor-surface: Always set opaque region on alpha-less textures 2020-10-02 15:09:12 +00:00
meta-wayland-actor-surface.h wayland: Drive frame callbacks from stage updates 2020-05-26 16:46:57 +02:00
meta-wayland-buffer.c onscreen/native: Move function declaration to the correct header file 2021-02-09 08:27:11 +00:00
meta-wayland-buffer.h wayland/shm: Advertise support for RGB565 2020-08-07 09:02:49 +00:00
meta-wayland-client.c wayland/client: Free GSubprocessLauncher after spawning 2020-10-02 15:37:52 +00:00
meta-wayland-cursor-surface.c clutter: Drop clutter_input_device_get_coords() method 2020-11-27 15:14:33 +00:00
meta-wayland-cursor-surface.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-data-device-primary-legacy.c wayland: Add versions to primary selection protocols 2020-09-27 17:20:23 +02:00
meta-wayland-data-device-primary-legacy.h wayland: Rename gtk primary protocol files to "legacy" 2020-05-13 18:18:14 +02:00
meta-wayland-data-device-primary.c wayland: Add versions to primary selection protocols 2020-09-27 17:20:23 +02:00
meta-wayland-data-device-primary.h wayland: Add support for wayland-protocols primary selection protocol 2020-05-13 18:27:46 +02:00
meta-wayland-data-device.c wayland: Avoid automatically decoupling source/offer after grab 2021-02-09 19:33:13 +00:00
meta-wayland-data-device.h wayland: Send clipboard offers to all data devices from the same client 2020-05-13 14:44:55 +00:00
meta-wayland-data-offer-primary-legacy.c wayland: Free selection streams streams after transfer 2020-06-08 12:11:11 +00:00
meta-wayland-data-offer-primary-legacy.h wayland: Rename gtk primary protocol files to "legacy" 2020-05-13 18:18:14 +02:00
meta-wayland-data-offer-primary.c wayland: Free selection streams streams after transfer 2020-06-08 12:11:11 +00:00
meta-wayland-data-offer-primary.h wayland: Add support for wayland-protocols primary selection protocol 2020-05-13 18:27:46 +02:00
meta-wayland-data-offer.c wayland: Free selection streams streams after transfer 2020-06-08 12:11:11 +00:00
meta-wayland-data-offer.h wayland: Move primary data offers to their own file 2020-04-17 00:46:23 +02:00
meta-wayland-data-source-primary-legacy.c wayland: Rename gtk primary protocol files to "legacy" 2020-05-13 18:18:14 +02:00
meta-wayland-data-source-primary-legacy.h wayland: Rename gtk primary protocol files to "legacy" 2020-05-13 18:18:14 +02:00
meta-wayland-data-source-primary.c wayland: Add support for wayland-protocols primary selection protocol 2020-05-13 18:27:46 +02:00
meta-wayland-data-source-primary.h wayland: Add support for wayland-protocols primary selection protocol 2020-05-13 18:27:46 +02:00
meta-wayland-data-source.c wayland: Split MetaWaylandDataSource into a separate file 2020-04-17 00:46:21 +02:00
meta-wayland-data-source.h wayland: Split MetaWaylandDataSource into a separate file 2020-04-17 00:46:21 +02:00
meta-wayland-dma-buf.c onscreen/native: Move function declaration to the correct header file 2021-02-09 08:27:11 +00:00
meta-wayland-dma-buf.h wayland: Add API to acquire a CoglScanout from a surface 2020-04-16 15:05:52 +02:00
meta-wayland-dnd-surface.c wayland/dnd-surface: Use new API to set geometry scale of feedback actor 2021-02-05 09:51:56 +00:00
meta-wayland-dnd-surface.h wayland: Move DND surface role into its own file 2019-01-22 18:32:28 +01:00
meta-wayland-egl-stream.c wayland/egl-stream: Cache texture snippet 2020-01-10 16:01:21 +00:00
meta-wayland-egl-stream.h wayland/egl-stream: Cache texture snippet 2020-01-10 16:01:21 +00:00
meta-wayland-gtk-shell.c wayland/gtk-shell: Add an explicit gtk-shell surface release request 2021-01-29 16:21:16 +00:00
meta-wayland-gtk-shell.h wayland: Add MetaWaylandGtkShell object 2018-11-27 15:34:13 +01:00
meta-wayland-inhibit-shortcuts-dialog.c cleanup: Use g_clear_signal_handler() where possible 2019-11-21 15:02:27 +00:00
meta-wayland-inhibit-shortcuts-dialog.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-inhibit-shortcuts.c cleanup: Use g_clear_signal_handler() where possible 2019-11-21 15:02:27 +00:00
meta-wayland-inhibit-shortcuts.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-input-device.c wayland/input-device: Add next serial helper 2016-10-11 22:51:50 +08:00
meta-wayland-input-device.h wayland/input-device: Add next serial helper 2016-10-11 22:51:50 +08:00
meta-wayland-keyboard.c clutter: Move evdev evcode data to Clutter button/key events 2020-12-08 15:37:38 +00:00
meta-wayland-keyboard.h wayland/keyboard: Use MetaAnonymousFile to share keymap files 2020-04-21 17:52:08 +02:00
meta-wayland-legacy-xdg-shell.c wayland/xdg-shell: Warn when invalid geometry is set 2020-12-03 21:39:13 +00:00
meta-wayland-legacy-xdg-shell.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-outputs.c Make meta_* logging utilities not require line break 2020-10-08 16:38:41 +02:00
meta-wayland-outputs.h wayland: Advertise MetaMonitor as wl_output 2020-02-11 18:56:13 +00:00
meta-wayland-pointer-constraints.c wayland: Ensure pointer constraint region consistency 2021-01-12 12:32:24 +01:00
meta-wayland-pointer-constraints.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-pointer-gesture-pinch.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-pointer-gesture-pinch.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-pointer-gesture-swipe.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-pointer-gesture-swipe.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-pointer-gestures.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-pointer-gestures.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-pointer.c wayland: Repick (again) on pointer motion 2020-12-28 19:11:26 +01:00
meta-wayland-pointer.h wayland: Drop meta_wayland_compositor_repick() 2020-12-23 12:54:49 +01:00
meta-wayland-popup.c wayland: Avoid popup grab focus changes if there's an implicit grab 2020-06-17 13:47:38 +00:00
meta-wayland-popup.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-private.h xwayland: Start Xwayland on connection to either public X11 socket 2021-01-21 08:48:39 +01:00
meta-wayland-region.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-region.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-seat.c wayland: Drop meta_wayland_compositor_repick() 2020-12-23 12:54:49 +01:00
meta-wayland-seat.h wayland: Drop meta_wayland_compositor_repick() 2020-12-23 12:54:49 +01:00
meta-wayland-shell-surface.c compositor: Trigger repick after window effects here 2020-12-23 12:54:49 +01:00
meta-wayland-shell-surface.h wayland: Rework asynchronous window configuration 2019-12-09 10:09:40 +01:00
meta-wayland-subsurface.c wayland/subsurface: Don't include buffer-less subsurfaces in geometry 2020-12-03 21:39:13 +00:00
meta-wayland-subsurface.h wayland: Push actor state instead of itself pulling 2018-02-23 18:57:47 +08:00
meta-wayland-surface.c wayland: Don't explicitly repick on wl_surface destructor 2020-12-22 18:27:37 +01:00
meta-wayland-surface.h wayland/surface: Don't update outputs recursively on mapped changes 2020-08-29 12:40:11 +00:00
meta-wayland-tablet-cursor-surface.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-tablet-cursor-surface.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-tablet-manager.c core: Centralize cursor renderer and tracker updates 2020-11-27 15:14:33 +00:00
meta-wayland-tablet-manager.h core: Centralize cursor renderer and tracker updates 2020-11-27 15:14:33 +00:00
meta-wayland-tablet-pad-group.c clutter: Add vmethod to find out group for pad features 2020-11-27 15:14:34 +00:00
meta-wayland-tablet-pad-group.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-tablet-pad-ring.c Pass -D_GNU_SOURCE instead of defining it in source 2018-11-06 17:17:36 +01:00
meta-wayland-tablet-pad-ring.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-tablet-pad-strip.c Pass -D_GNU_SOURCE instead of defining it in source 2018-11-06 17:17:36 +01:00
meta-wayland-tablet-pad-strip.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-tablet-pad.c clutter: Add vmethod to find out group for pad features 2020-11-27 15:14:34 +00:00
meta-wayland-tablet-pad.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-tablet-seat.c wayland: Drop needless includes 2020-12-23 12:54:49 +01:00
meta-wayland-tablet-seat.h wayland: Replace ClutterDeviceManager usage in favor of ClutterSeat 2020-01-30 18:02:34 +01:00
meta-wayland-tablet-tool.c clutter: Move evdev evcode data to Clutter button/key events 2020-12-08 15:37:38 +00:00
meta-wayland-tablet-tool.h core: Centralize cursor renderer and tracker updates 2020-11-27 15:14:33 +00:00
meta-wayland-tablet.c Pass -D_GNU_SOURCE instead of defining it in source 2018-11-06 17:17:36 +01:00
meta-wayland-tablet.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-text-input-legacy.c clutter: Prepare input focus for IM event delivery 2020-08-31 08:40:12 +00:00
meta-wayland-text-input-legacy.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-text-input.c wayland: Reword comment 2020-08-31 08:40:12 +00:00
meta-wayland-text-input.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-touch.c wayland: Drop HAVE_BACKEND_NATIVE checks in wl_touch implementation 2020-12-08 15:37:38 +00:00
meta-wayland-touch.h wayland: Simplify wl_touch.frame handling 2020-10-23 18:48:18 +00:00
meta-wayland-types.h wayland: Add support for wayland-protocols primary selection protocol 2020-05-13 18:27:46 +02:00
meta-wayland-versions.h wayland/gtk-shell: Add an explicit gtk-shell surface release request 2021-01-29 16:21:16 +00:00
meta-wayland-viewporter.c wayland/surface: Rename MetaWaylandPendingState to MetaWaylandSurfaceState 2019-12-09 10:09:40 +01:00
meta-wayland-viewporter.h wayland/surface: Add support for wp_viewporter 2019-02-06 12:24:03 +00:00
meta-wayland-window-configuration.c wayland: Only use async configured geometry if actually changed 2021-01-30 09:49:13 +00:00
meta-wayland-window-configuration.h wayland: Only use async configured geometry if actually changed 2021-01-30 09:49:13 +00:00
meta-wayland-wl-shell.c wayland/window: Don't lose precision in MetaWaylandWindowConfiguration 2020-10-29 10:24:25 +01:00
meta-wayland-wl-shell.h wayland: Restructure surface role building blocks code 2018-02-23 18:57:40 +08:00
meta-wayland-xdg-foreign.c wayland: Don't access MetaWaylandSurface::window directly 2020-02-19 22:34:28 +00:00
meta-wayland-xdg-foreign.h wayland: Add support for the xdg-foreign protocol 2016-08-22 21:03:41 +08:00
meta-wayland-xdg-shell.c wayland/xdg-shell: Warn on invalid effective geometry 2020-12-03 21:39:13 +00:00
meta-wayland-xdg-shell.h wayland: Add support for stable xdg-shell 2018-02-23 18:57:53 +08:00
meta-wayland.c xwayland: Split Xwayland display name getter into two 2021-01-25 15:14:35 +00:00
meta-wayland.h xwayland: Split Xwayland display name getter into two 2021-01-25 15:14:35 +00:00
meta-window-wayland.c wayland: Only use async configured geometry if actually changed 2021-01-30 09:49:13 +00:00
meta-window-wayland.h wayland/xdg-shell: Add support for explicit popup repositioning 2020-02-29 21:01:50 +00:00
meta-window-xwayland.c xwayland: Protect against MetaX11Display abruptly closing 2020-10-21 18:57:12 +02:00
meta-window-xwayland.h xwayland: Add MetaWindowXwayland 2017-12-18 13:15:09 +01:00
meta-xwayland-dnd-private.h wayland: Reduce MetaXWaylandSelection to just DnD 2019-05-02 16:31:45 +02:00
meta-xwayland-dnd.c wayland: Plug XDnD drag source leak 2021-02-09 19:33:13 +00:00
meta-xwayland-grab-keyboard.c xwayland: Match applications without WM_CLASS nor WM_NAME 2020-11-06 15:57:23 +01:00
meta-xwayland-grab-keyboard.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-xwayland-private.h xwayland: Set xrandr primary output 2020-12-11 13:44:45 +00:00
meta-xwayland-surface.c compositor: Trigger repick after window effects here 2020-12-23 12:54:49 +01:00
meta-xwayland-surface.h xwayland: Move out surface role related logic 2020-02-19 22:34:28 +00:00
meta-xwayland.c xwayland: Check for listenfd option 2021-01-22 11:40:30 +01:00
meta-xwayland.h meta: Hide libmutter symbols by default and selectively export them 2019-01-23 14:18:13 +01:00