mutter/src/wayland
Robert Mader a09c914230 wayland/actor-surface: Call ensure_size_valid() on shaped-texture
Use the new API to make sure the shaped texture has a valid size
during the next layout phase.

This is needed here because, quoting the previous commit:

When the texture size is invalidated using `invalidate_size()`, the new
size will only get calculated the next time `update_size()` is
called. This happens e.g. in `meta_shaped_texture_get_preferred_size()`
via `ensure_size_valid()`.

`update_size()` can chain up to `clutter_content_invalidate_size()`
as well as emitting a `size-changed` signal. If this happens during
layout, the result is a 'change the layout conditions during layout'
issue, causing heavy breakage in e.g. the Shell overview.

To fix this, expose `ensure_size_valid()` as API so callers can make
sure the texture has a valid size without creating redundant size
invalidations calls.

Note that if a buffer with a new size is attached we already trigger
`update_size()` explicitely, avoiding such situations.

Closes https://gitlab.gnome.org/GNOME/mutter/-/issues/1718

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1799>
2021-03-29 15:47:25 +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: 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: Cancel selection data sources that are set while unfocused 2021-03-23 17:07:31 +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 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: Move placement ops to the parents pending state 2021-03-14 00:38:18 +01:00
meta-wayland-subsurface.h wayland/subsurface: Move placement ops to the parents pending state 2021-03-14 00:38:18 +01: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 wayland/window: Correct detection whether to send configure 2021-03-12 16:25:10 +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 wayland/window: Correct detection whether to send configure 2021-03-12 16:25:10 +00:00
meta-window-wayland.h wayland/window: Correct detection whether to send configure 2021-03-12 16:25:10 +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