mutter/src/wayland
Robert Mader 57881ba612 wayland/subsurface: Move actor unparenting back to rebuild_surface_tree()
Unparenting the surface actor when the subsurface object is destroyed
has several issues:
 - subsurface actors can be unparented while a close animation is
   still ongoing, breaking the animation for e.g. Firefox.
 - adding and removing the actor to/from the parent is not handled in
   one place, making the code harder to follow.
 - if the destroyed subsurface had children of its own, they potentially
   stick around until a surface-tree rebuild. This makes the Firefox
   hamburger menu not close with the "compositor" backend.

Move the unparenting back to
`meta_window_actor_wayland_rebuild_surface_tree()` and instead just
notify the parent of a state change, if it still exist. This will ensure
a correct mapping between the subsurface node tree and the flat surface
actor list. In case of the closing animation the parent will already be
removed and the call is skipped.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2501>
2022-07-11 17:23:10 +00:00
..
protocol wayland: Remove Gtk primary selection protocol 2022-05-18 20:15:08 +00:00
meta-cursor-sprite-wayland.c cursor-sprite: Register all cursor sprites with the cursor tracker 2021-12-22 16:22:08 +00:00
meta-cursor-sprite-wayland.h cursor-sprite: Register all cursor sprites with the cursor tracker 2021-12-22 16:22:08 +00:00
meta-pointer-confinement-wayland.c wayland/pointer-confinement: Scale region with the geometry scale 2022-06-13 18:38:51 +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 pointer-constraints: Move min edge distance from backend to Wayland 2022-06-13 18:38:50 +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-activation.c wayland: Handle xdg_activation_v1_activate on non XDG activation tokens 2022-02-28 17:34:27 +01:00
meta-wayland-activation.h wayland: Implement the xdg-activation protocol 2021-07-09 09:34:28 +00:00
meta-wayland-actor-surface.c wayland/surface-role: Make geometry scale API return int 2022-06-13 18:38:50 +00:00
meta-wayland-actor-surface.h wayland/surface-role: Make geometry scale API return int 2022-06-13 18:38:50 +00:00
meta-wayland-buffer.c wayland/buffer: Only query Wayland EGL buffer if display bound 2022-05-17 10:09:27 +00:00
meta-wayland-buffer.h wayland/buffer: Only query Wayland EGL buffer if display bound 2022-05-17 10:09:27 +00:00
meta-wayland-client.c wayland/client: Restore the NOFILE limit 2022-02-07 16:11:47 +01:00
meta-wayland-cursor-surface.c cursor-sprite: Register all cursor sprites with the cursor tracker 2021-12-22 16:22:08 +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.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 dnd: Notify about events during compositor grab from event filter 2022-03-02 15:12:23 +00:00
meta-wayland-data-device.h dnd: Notify about events during compositor grab from event filter 2022-03-02 15:12:23 +00: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 wayland/data-offer: Fix indentation in data_offer_finish() 2021-10-14 21:08:42 +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.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: Free feedback in surface_feedback_surface_destroyed_cb 2022-06-16 10:24:42 +00:00
meta-wayland-dma-buf.h wayland/dma-buf: Make manager object a GObject 2022-01-05 16:36:48 +00:00
meta-wayland-dnd-surface.c wayland/surface-role: Make geometry scale API return int 2022-06-13 18:38:50 +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/buffer: Only query Wayland EGL buffer if display bound 2022-05-17 10:09:27 +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: Only perform allowed titlebar gestures 2022-02-10 20:00:15 +01: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 wayland/keyboard: Remove unnused define 2022-02-22 11:05:36 +01:00
meta-wayland-keyboard.h wayland: Check keyboard serials for activation 2021-12-13 14:49:14 +00:00
meta-wayland-outputs.c wayland/output: Always set xdg_output interface implementation 2021-12-02 20:07:49 +00:00
meta-wayland-outputs.h wayland/output: Move struct to C file 2021-08-22 16:40:42 +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-hold.c wayland/pointer-gestures: Implement hold gesture 2021-12-02 20:48:24 +00:00
meta-wayland-pointer-gesture-hold.h wayland/pointer-gestures: Implement hold gesture 2021-12-02 20:48:24 +00: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 wayland/pointer-gestures: Fix swipe cancellation 2021-06-15 22:22:30 +00: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 wayland/pointer-gestures: Implement hold gesture 2021-12-02 20:48:24 +00:00
meta-wayland-pointer-gestures.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-pointer.c wayland: Remove unnecessary COMPOSITOR_GRAB checks 2022-05-28 10:25:29 +00:00
meta-wayland-pointer.h wayland: Make the pointer leave non-alive surfaces 2021-12-07 17:15:21 +00:00
meta-wayland-popup.c wayland: Make implicit grabs during popups be owner_events=TRUE 2021-06-09 19:00:15 +00: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/output: Move struct to C file 2021-08-22 16:40:42 +00:00
meta-wayland-private.h xwayland: Only warn on X IO errors when X11 is mandatory 2022-05-31 12:00:55 +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: Remove Gtk primary selection protocol 2022-05-18 20:15:08 +00:00
meta-wayland-seat.h wayland: Remove Gtk primary selection protocol 2022-05-18 20:15:08 +00:00
meta-wayland-shell-surface.c wayland/surface-role: Make geometry scale API return int 2022-06-13 18:38:50 +00: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: Move actor unparenting back to rebuild_surface_tree() 2022-07-11 17:23:10 +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/pointer-confinement: Scale region with the geometry scale 2022-06-13 18:38:51 +00:00
meta-wayland-surface.h wayland/surface: Remove leftover function declarations 2022-07-01 16:05:33 +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 wayland: Check input device capabilities in tablet seats 2022-03-30 12:06:52 +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 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 wayland/tablet-pad: Fix fallthrough warning 2022-03-04 23:12:24 +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: Check input device capabilities in tablet seats 2022-03-30 12:06:52 +00: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 wayland: Remove unnecessary COMPOSITOR_GRAB checks 2022-05-28 10:25:29 +00:00
meta-wayland-tablet-tool.h backends: Replace MetaCursorSprite::prepare-at with in-place function 2021-12-07 20:04:08 +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.c wayland: Avoid repeated NULL preedit string updates 2022-04-30 15:10:17 +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: Move away from clutter_event_get_source() 2022-03-04 10:58:28 +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 getter for XWayland manager object 2022-05-31 12:00:54 +00:00
meta-wayland-versions.h wayland: Remove Gtk primary selection protocol 2022-05-18 20:15:08 +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 window/wayland: Always include a size when sending a configuration 2022-03-05 13:18:58 +00:00
meta-wayland-window-configuration.h window/wayland: Always include a size when sending a configuration 2022-03-05 13:18:58 +00:00
meta-wayland-xdg-foreign.c wayland: Drop xdg-shell v6 protocol 2022-05-18 19:29:08 +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: Add toplevel bounds support 2022-03-04 14:48:25 +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: Add getter for XWayland manager object 2022-05-31 12:00:54 +00:00
meta-wayland.h wayland: Add getter for XWayland manager object 2022-05-31 12:00:54 +00:00
meta-window-wayland.c window/wayland: Always include a size when sending a configuration 2022-03-05 13:18:58 +00:00
meta-window-wayland.h window/wayland: Always include a size when sending a configuration 2022-03-05 13:18:58 +00:00
meta-window-xwayland.c backends: Shuffle ClutterBackendX11 code into MetaClutterBackendX11 2021-07-16 19:08:06 +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/xdnd: Use multiple DnD X11 peers 2022-02-25 11:35:35 +01:00
meta-xwayland-grab-keyboard.c xwayland-grab-keyboard: Switch to g_pattern_spec_match_string() 2021-08-12 13:11:31 +00:00
meta-xwayland-grab-keyboard.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-xwayland-private.h xwayland: Init/shutdown DND using MetaX11Display 2021-10-26 16:55:12 +02:00
meta-xwayland-surface.c wayland/surface-role: Make geometry scale API return int 2022-06-13 18:38:50 +00:00
meta-xwayland-surface.h xwayland: Move out surface role related logic 2020-02-19 22:34:28 +00:00
meta-xwayland.c xwayland: Remove stray newline 2022-05-31 12:00:55 +00:00
meta-xwayland.h xwayland: Add API to send signal to the Xwayland process 2022-05-31 12:00:55 +00:00