mutter/src/wayland
Robert Mader ae0d48b6fd wayland/subsurface: Only show subsurface if parent is mapped
The spec states:
```
A sub-surface becomes mapped, when a non-NULL wl_buffer is applied
and the parent surface is mapped. The order of which one happens
first is irrelevant. A sub-surface is hidden if the parent becomes hidden,
or if a NULL wl_buffer is applied. These rules apply recursively
through the tree of surfaces.
```

In the past we relied on Clutter actor behaviour to realize the recursive
part - which then broke in
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/664
when we changed the actor hierachy in regards to subsurfaces.

Explicitly encode the desired behaviour in `MetaWaylandSubsurface`, fixing
the issue and making it future proof.

Closes https://gitlab.gnome.org/GNOME/mutter/-/issues/1384
2020-10-14 18:55:21 +02:00
..
protocol wayland: Update gtk-shell protocol to v3 2019-01-26 18:07:03 +01:00
meta-cursor-sprite-wayland.c
meta-cursor-sprite-wayland.h
meta-pointer-confinement-wayland.c wayland: Don't access MetaWaylandSurface::window directly 2020-02-19 22:34:28 +00:00
meta-pointer-confinement-wayland.h
meta-pointer-lock-wayland.c Add some gtk-doc comments. 2019-01-06 21:57:16 +01:00
meta-pointer-lock-wayland.h
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 wayland/shm: Advertise support for 64 half point RGBA formats 2020-08-07 09:02:49 +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: Drive frame callbacks from stage updates 2020-05-26 16:46:57 +02:00
meta-wayland-cursor-surface.h
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/data-device: Don't create and leak unused memory on dnd 2020-06-08 12:11:11 +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 backends: force enable modifiers on tagged devices 2020-09-28 14:00:44 +02: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: Drive frame callbacks from stage updates 2020-05-26 16:46:57 +02: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: Don't access MetaWaylandSurface::window directly 2020-02-19 22:34:28 +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
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
meta-wayland-input-device.c
meta-wayland-input-device.h
meta-wayland-keyboard.c Make meta_* logging utilities not require line break 2020-10-08 16:38:41 +02: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/shell: Apply geometry after subsurface state application 2020-06-26 07:47:40 +00:00
meta-wayland-legacy-xdg-shell.h
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/pointer-constraints: Fix typo 2020-03-29 19:48:33 +01:00
meta-wayland-pointer-constraints.h
meta-wayland-pointer-gesture-pinch.c
meta-wayland-pointer-gesture-pinch.h
meta-wayland-pointer-gesture-swipe.c
meta-wayland-pointer-gesture-swipe.h
meta-wayland-pointer-gestures.c
meta-wayland-pointer-gestures.h
meta-wayland-pointer.c clutter/input-device: Make clutter_input_device_get_actor() public 2020-06-16 10:09:26 +00:00
meta-wayland-pointer.h cleanup: Use g_clear_signal_handler() where possible 2019-11-21 15:02:27 +00: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
meta-wayland-private.h wayland: Drop Xwayland abstract socket 2020-08-31 19:46:27 +00:00
meta-wayland-region.c
meta-wayland-region.h
meta-wayland-seat.c clutter/backends: Rename master and slave devices 2020-08-31 21:07:03 +02:00
meta-wayland-seat.h wayland: Add support for wayland-protocols primary selection protocol 2020-05-13 18:27:46 +02:00
meta-wayland-shell-surface.c wayland/actor-surface: Update outputs on stage-views changes 2020-08-29 12:40:11 +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: Only show subsurface if parent is mapped 2020-10-14 18:55:21 +02:00
meta-wayland-subsurface.h
meta-wayland-surface.c wayland: Don't include newline in client error events 2020-10-08 16:38:41 +02: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
meta-wayland-tablet-cursor-surface.h
meta-wayland-tablet-manager.c clutter/backends: Rename master and slave devices 2020-08-31 21:07:03 +02:00
meta-wayland-tablet-manager.h
meta-wayland-tablet-pad-group.c clutter: Move evdev input to src/backends/native 2019-08-24 08:59:08 +00:00
meta-wayland-tablet-pad-group.h
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
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
meta-wayland-tablet-pad.c wayland: use correct enum type for tablet pad 2019-11-05 13:07:47 +00:00
meta-wayland-tablet-pad.h
meta-wayland-tablet-seat.c clutter/backends: Rename master and slave devices 2020-08-31 21:07:03 +02: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: Don't send proximity_in for new resources 2020-10-12 09:37:19 +00:00
meta-wayland-tablet-tool.h cleanup: Use g_clear_signal_handler() where possible 2019-11-21 15:02:27 +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
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
meta-wayland-text-input.c wayland: Reword comment 2020-08-31 08:40:12 +00:00
meta-wayland-text-input.h
meta-wayland-touch.c wayland: Replace ClutterDeviceManager usage in favor of ClutterSeat 2020-01-30 18:02:34 +01:00
meta-wayland-touch.h wayland: Replace ClutterDeviceManager usage in favor of ClutterSeat 2020-01-30 18:02:34 +01: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: Add versions to primary selection protocols 2020-09-27 17:20:23 +02: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/window-configuration: Track resize flags and gravity too 2020-02-29 21:01:50 +00:00
meta-wayland-window-configuration.h wayland/window-configuration: Track resize flags and gravity too 2020-02-29 21:01:50 +00:00
meta-wayland-wl-shell.c wayland: Drive frame callbacks from stage updates 2020-05-26 16:46:57 +02:00
meta-wayland-wl-shell.h
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
meta-wayland-xdg-shell.c wayland/xdg-shell: Move popup role assignment behind checks 2020-08-27 00:10:05 +02:00
meta-wayland-xdg-shell.h
meta-wayland.c Make meta_* logging utilities not require line break 2020-10-08 16:38:41 +02:00
meta-wayland.h wayland: Drive frame callbacks from stage updates 2020-05-26 16:46:57 +02:00
meta-window-wayland.c Make meta_* logging utilities not require line break 2020-10-08 16:38:41 +02: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 window/x11: Add always_update_shape() vfunc 2020-01-16 09:22:25 +01:00
meta-window-xwayland.h
meta-xwayland-dnd-private.h wayland: Reduce MetaXWaylandSelection to just DnD 2019-05-02 16:31:45 +02:00
meta-xwayland-dnd.c Remove misplaced line break in g_* logging functions 2020-10-08 16:38:41 +02:00
meta-xwayland-grab-keyboard.c cleanup: remove controversial naming 2020-08-04 10:04:16 +02:00
meta-xwayland-grab-keyboard.h
meta-xwayland-private.h xwayland: Do not block on Xwayland initialization 2020-02-28 20:20:35 +00:00
meta-xwayland-surface.c wayland/actor-surface: Update outputs on stage-views changes 2020-08-29 12:40:11 +00:00
meta-xwayland-surface.h xwayland: Move out surface role related logic 2020-02-19 22:34:28 +00:00
meta-xwayland.c Remove misplaced line break in g_* logging functions 2020-10-08 16:38:41 +02:00
meta-xwayland.h meta: Hide libmutter symbols by default and selectively export them 2019-01-23 14:18:13 +01:00