mutter/src/wayland
Robert Mader 96f2da9fb0 wayland/data-device: Clear existing data device resource from list
Compositor behaviour when calling `wl_data_device_manager_get_data_device`
for the same seat multiple times is not very clearly defined in
the spec and both Mutter and Weston currently don't handle
the DnD case properly.

While Weston handles DnD only for the last created data device,
Mutter, because of some internal reshuffling, ends up toggling
between two devices.

Properly handling this case requires some bigger changes. So
in order to behave predictable and in line with Weston,
only take the last created data device into account while
still keeping the previous created ones around.

The main affect client here is Firefox, which gets very
confused by the toggling behaviour and becomes more stable
with this patch.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1841>
2021-04-30 22:38:39 +02: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: Call ensure_size_valid() on shaped-texture 2021-03-29 15:47:25 +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 wayland: Send presentation feedbacks to cursors 2021-03-08 09:48:12 +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: Cancel selection data sources that are set while unfocused 2021-03-23 17:07:31 +00: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: Cancel selection data sources that are set while unfocused 2021-03-23 17:07:31 +00: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/data-device: Clear existing data device resource from list 2021-04-30 22:38:39 +02: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 src: Stop using GSlice 2021-02-22 13:52:27 +01: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 src: Stop using GSlice 2021-02-22 13:52:27 +01: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 src: Stop using GSlice 2021-02-22 13:52:27 +01: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 wayland-dma-buf: Add support for DRM_FORMAT_ABGR2101010 2021-03-23 16:40:40 +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 src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-wayland-pointer.h wayland: Drop meta_wayland_compositor_repick() 2020-12-23 12:54:49 +01:00
meta-wayland-popup.c src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-wayland-popup.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-presentation-time-private.h wayland: Send presentation feedbacks to cursors 2021-03-08 09:48:12 +00:00
meta-wayland-presentation-time.c wayland: Send presentation feedbacks to cursors 2021-03-08 09:48:12 +00:00
meta-wayland-private.h wayland: Store list of presentation-time surfaces 2021-03-08 09:48:12 +00:00
meta-wayland-region.c src: Stop using GSlice 2021-02-22 13:52:27 +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: Avoid placement ops for detached subsurfaces 2021-04-19 11:55:49 +00:00
meta-wayland-subsurface.h wayland/subsurface: Avoid placement ops for detached subsurfaces 2021-04-19 11:55:49 +00:00
meta-wayland-surface.c wayland/surface: Do not free placement ops of cached state 2021-03-15 12:49:45 +00:00
meta-wayland-surface.h wayland/subsurface: Move placement ops to the parents pending state 2021-03-14 00:38:18 +01: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 src: Stop using GSlice 2021-02-22 13:52:27 +01: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 src: Stop using GSlice 2021-02-22 13:52:27 +01: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 src: Stop using GSlice 2021-02-22 13:52:27 +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 src: Stop using GSlice 2021-02-22 13:52:27 +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 src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-wayland-tablet-pad.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-tablet-seat.c src: Stop using GSlice 2021-02-22 13:52:27 +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 src: Stop using GSlice 2021-02-22 13:52:27 +01: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 src: Stop using GSlice 2021-02-22 13:52:27 +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: Implement stub presentation-time 2021-03-08 09:48:11 +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 Revert "wayland/window: Correct detection whether to send configure" 2021-04-14 06:36:09 +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 wayland: Wire up presentation-time machinery 2021-03-08 09:48:12 +00:00
meta-wayland.h wayland: Store list of presentation-time surfaces 2021-03-08 09:48:12 +00:00
meta-window-wayland.c Revert "wayland/window: Correct detection whether to send configure" 2021-04-14 06:36:09 +00:00
meta-window-wayland.h Revert "wayland/window: Correct detection whether to send configure" 2021-04-14 06:36:09 +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 src: Stop using GSlice 2021-02-22 13:52:27 +01: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 permissions on /tmp/.X11-unix 2021-03-18 17:43:02 +01:00
meta-xwayland.h meta: Hide libmutter symbols by default and selectively export them 2019-01-23 14:18:13 +01:00