mutter/src/backends
Jonas Ådahl 867494d3df wayland/cursor-surface: Update cursor on dispose
Otherwise we'll have a cursor sprite backed by a surface that no longer
exist. This usually doesn't happen, but can happen in rare situations
related to pointer capability changes Wayland client cursor changes and
hotplugs.

Fixes the following crash:

  #0 meta_wayland_buffer_get_resource() at ../src/wayland/meta-wayland-buffer.c:128
  #1 realize_cursor_sprite_from_wl_buffer_for_gpu() at ../src/backends/native/meta-cursor-renderer-native.c:1649
  #2 realize_cursor_sprite_for_gpu() at ../src/backends/native/meta-cursor-renderer-native.c:1869
  #3 realize_cursor_sprite() at ../src/backends/native/meta-cursor-renderer-native.c:1887
  #4 meta_cursor_renderer_native_update_cursor() at ../src/backends/native/meta-cursor-renderer-native.c:1100
  #5 meta_cursor_renderer_update_cursor() at ../src/backends/meta-cursor-renderer.c:414
  #6 meta_cursor_renderer_force_update() at ../src/backends/meta-cursor-renderer.c:449
  #7 update_cursors() at ../src/backends/meta-backend.c:328
  #8 meta_backend_monitors_changed() at ../src/backends/meta-backend.c:338
  #9 meta_monitor_manager_notify_monitors_changed() at ../src/backends/meta-monitor-manager.c:3590
 #10 meta_monitor_manager_rebuild() at ../src/backends/meta-monitor-manager.c:3678
 #11 meta_monitor_manager_native_apply_monitors_config() at ../src/backends/native/meta-monitor-manager-native.c:343
 #12 meta_monitor_manager_apply_monitors_config() at ../src/backends/meta-monitor-manager.c:706
 #13 meta_monitor_manager_ensure_configured() at ../src/backends/meta-monitor-manager.c:779
 #14 meta_monitor_manager_reconfigure() at ../src/backends/meta-monitor-manager.c:3738
 #15 meta_monitor_manager_reload() at ../src/backends/meta-monitor-manager.c:3745

or the following on gnome-43:

 #0 meta_wayland_surface_get_buffer at ../src/wayland/meta-wayland-surface.c:441
 #1 meta_cursor_sprite_wayland_get_buffer at ../src/wayland/meta-cursor-sprite-wayland.c:83
 #2 realize_cursor_sprite_from_wl_buffer_for_gpu at ../src/backends/native/meta-cursor-renderer-native.c:1612
 #3 realize_cursor_sprite_for_gpu at ../src/backends/native/meta-cursor-renderer-native.c:1836
 #4 realize_cursor_sprite at ../src/backends/native/meta-cursor-renderer-native.c:1854
 #5 meta_cursor_renderer_native_update_cursor at ../src/backends/native/meta-cursor-renderer-native.c:1087
 #6 meta_cursor_renderer_update_cursor at ../src/backends/meta-cursor-renderer.c:413
 #7 meta_cursor_renderer_force_update at ../src/backends/meta-cursor-renderer.c:448
 #8 update_cursors at ../src/backends/meta-backend.c:344
 #9 meta_backend_monitors_changed at ../src/backends/meta-backend.c:354

Related: https://bugzilla.redhat.com/show_bug.cgi?id=2185113
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2968>
2023-04-17 19:53:35 +00:00
..
native frame/native: Remember whether the frame carried a kms update 2023-04-17 09:16:10 +00:00
x11 output-xrandr: Don't treat 0 as invalid backlight value 2023-04-04 19:30:06 +00:00
edid-parse.c edid: Remove all unnecessary EDID parameters parsing 2023-02-16 08:42:37 +00:00
edid.h edid: Fix MetaEdidStaticMetadataType bitmask 2023-03-04 09:30:41 +00:00
gsm-inhibitor-flag.h
meta-backend-private.h wayland/cursor-surface: Update cursor on dispose 2023-04-17 19:53:35 +00:00
meta-backend-types.h backends: Add generic D-Bus session manager helper class 2023-02-23 17:52:08 +00:00
meta-backend.c backend: Fix build with -Dremote_desktop=false 2023-04-03 21:34:54 +00:00
meta-barrier-private.h barrier: Modernize type implementation 2022-07-26 20:27:24 +00:00
meta-barrier.c barrier: Make type derivable again 2022-09-15 12:27:52 +00:00
meta-color-device.c color-device: Don't close lcms profile on error from cd_icc_load_handle 2023-03-03 12:07:02 +00:00
meta-color-device.h color-device: Add API to set test efivar path 2022-09-01 21:09:28 +00:00
meta-color-manager-private.h tests: Add duplicate color profile test case 2022-09-15 11:22:54 +00:00
meta-color-manager.c Use the same prefix for all generated D-Bus boiler plate 2023-01-28 12:35:54 +01:00
meta-color-manager.h x11: Add X11 color manager subclass 2022-09-01 19:09:21 +02:00
meta-color-profile.c color: Handle profiles not initializing succesfully 2022-09-15 11:22:54 +00:00
meta-color-profile.h color-device: Pass calibration state separately when creating profile 2022-09-01 21:09:28 +00:00
meta-color-store.c color-store: Forward cancelled error if connect failed 2023-01-30 13:17:19 +00:00
meta-color-store.h tests: Add duplicate color profile test case 2022-09-15 11:22:54 +00:00
meta-crtc-mode.c
meta-crtc-mode.h output/kms: Replace common mode bandwidth check with clock check 2022-07-01 16:13:18 +02:00
meta-crtc.c backends: Use meta_gamma_lut_new_sized() in a few more places 2023-03-30 11:21:02 +00:00
meta-crtc.h kms/update: Add API to merge two updates 2023-03-01 23:57:32 +00:00
meta-cursor-renderer.c clutter: Pass 'ClutterFrame' in all stage update signals 2023-01-23 15:57:50 +01:00
meta-cursor-renderer.h wayland/cursor-surface: Update cursor on dispose 2023-04-17 19:53:35 +00:00
meta-cursor-sprite-xcursor.c cursor-sprite: Register all cursor sprites with the cursor tracker 2021-12-22 16:22:08 +00:00
meta-cursor-sprite-xcursor.h cursor-sprite: Register all cursor sprites with the cursor tracker 2021-12-22 16:22:08 +00:00
meta-cursor-tracker-private.h cursor-sprite: Register all cursor sprites with the cursor tracker 2021-12-22 16:22:08 +00:00
meta-cursor-tracker.c cursor-tracker: Don't leak window cursor on exit 2023-04-17 19:53:35 +00:00
meta-cursor.c cursor: Hold reference to cursor tracker 2021-12-22 19:37:16 +01:00
meta-cursor.h backends: Replace MetaCursorSprite::prepare-at with in-place function 2021-12-07 20:04:08 +00:00
meta-dbus-session-manager.c dbus-session: Make some properties part of the interface 2023-02-23 17:52:08 +00:00
meta-dbus-session-manager.h backends: Add generic D-Bus session manager helper class 2023-02-23 17:52:08 +00:00
meta-dbus-session-watcher.c dbus-session: Make some properties part of the interface 2023-02-23 17:52:08 +00:00
meta-dbus-session-watcher.h dbus-session: Make some properties part of the interface 2023-02-23 17:52:08 +00:00
meta-display-config-shared.h
meta-dnd-private.h dnd: Notify about events during compositor grab from event filter 2022-03-02 15:12:23 +00:00
meta-egl-ext.h
meta-egl.c egl: Fix number of configs returned in meta_egl_choose_all_configs 2022-03-03 08:18:56 +00:00
meta-egl.h egl: Add eglQueryDisplayAttribEXT() helper 2022-01-05 16:36:48 +00:00
meta-gles3-table.h
meta-gles3.c gles3: Ensure missing_extensions is always populated 2023-01-18 10:14:39 +00:00
meta-gles3.h
meta-gpu.c
meta-gpu.h
meta-idle-manager.c backend: Set up and use ownership chains 2022-12-17 13:52:51 +00:00
meta-idle-manager.h
meta-idle-monitor-private.h
meta-idle-monitor.c Name unnamed sources 2022-03-04 10:10:05 +03:00
meta-input-device-private.h backend: Set up and use ownership chains 2022-12-17 13:52:51 +00:00
meta-input-device.c backend: Set up and use ownership chains 2022-12-17 13:52:51 +00:00
meta-input-mapper-private.h backend: Set up and use ownership chains 2022-12-17 13:52:51 +00:00
meta-input-mapper.c backend: Set up and use ownership chains 2022-12-17 13:52:51 +00:00
meta-input-settings-dummy.c Support selecting an acceleration profile for touchpad devices 2023-02-01 03:03:47 +00:00
meta-input-settings-dummy.h
meta-input-settings-private.h Support selecting an acceleration profile for touchpad devices 2023-02-01 03:03:47 +00:00
meta-input-settings.c Support selecting an acceleration profile for touchpad devices 2023-02-01 03:03:47 +00:00
meta-keymap-utils.c
meta-keymap-utils.h
meta-logical-monitor.c
meta-logical-monitor.h
meta-monitor-config-manager.c monitor-config-manager: Add a max_bpc field to MetaMonitorConfig 2022-08-19 17:07:12 +00:00
meta-monitor-config-manager.h monitor-config-manager: Add a max_bpc field to MetaMonitorConfig 2022-08-19 17:07:12 +00:00
meta-monitor-config-migration.c monitor-manager: Pass the Logical mode when computing the monitor scale 2021-07-22 13:14:01 +02:00
meta-monitor-config-migration.h
meta-monitor-config-store.c monitor-config-store: Format <rate> using the C locale (. decimal point) 2022-09-02 08:43:00 +00:00
meta-monitor-config-store.h monitor-config-store: Allow changing D-Bus configuration policy 2022-01-25 16:25:48 +00:00
meta-monitor-manager-dummy.c backend: Set up and use ownership chains 2022-12-17 13:52:51 +00:00
meta-monitor-manager-dummy.h
meta-monitor-manager-private.h monitor-manager: Restore old config in idle callback when unconfirmed 2023-03-18 13:52:10 +00:00
meta-monitor-manager.c backends: Fall back to the default and not the unknown color space 2023-03-20 10:00:36 +00:00
meta-monitor-transform.c monitor-transform: Add helper to transform matrices 2022-08-05 20:30:50 +02:00
meta-monitor-transform.h monitor-transform: Add helper to transform matrices 2022-08-05 20:30:50 +02:00
meta-monitor.c output: Check the EDID for HDR Static Metadata support 2023-03-04 09:30:41 +00:00
meta-monitor.h monitor-manager: Make color space and HDR metadata accessible from lg 2023-03-04 09:30:41 +00:00
meta-orientation-manager.c backends: Don't leak GSettingsSchema 2023-02-01 13:16:29 +00:00
meta-orientation-manager.h tests: Add MetaOrientationManager tests via SensorsProxy mock 2021-09-04 10:04:00 +02:00
meta-output.c backends: Fall back to the default and not the unknown color space 2023-03-20 10:00:36 +00:00
meta-output.h output: Check the EDID for HDR Static Metadata support 2023-03-04 09:30:41 +00:00
meta-pointer-constraint.c pointer-constraints: Move min edge distance from backend to Wayland 2022-06-13 18:38:50 +00:00
meta-pointer-constraint.h pointer-constraints: Move min edge distance from backend to Wayland 2022-06-13 18:38:50 +00:00
meta-remote-access-controller-private.h Port screen cast and remote desktop to MetaDbusSessionManager 2023-02-23 17:52:08 +00:00
meta-remote-access-controller.c Port screen cast and remote desktop to MetaDbusSessionManager 2023-02-23 17:52:08 +00:00
meta-remote-desktop-session.c dbus-session: Make some properties part of the interface 2023-02-23 17:52:08 +00:00
meta-remote-desktop-session.h Port screen cast and remote desktop to MetaDbusSessionManager 2023-02-23 17:52:08 +00:00
meta-remote-desktop.c Port screen cast and remote desktop to MetaDbusSessionManager 2023-02-23 17:52:08 +00:00
meta-remote-desktop.h Port screen cast and remote desktop to MetaDbusSessionManager 2023-02-23 17:52:08 +00:00
meta-renderer-view.c backends/native: Introduce MetaRendererViewNative 2023-03-02 01:39:16 +01:00
meta-renderer-view.h backends/native: Introduce MetaRendererViewNative 2023-03-02 01:39:16 +01:00
meta-renderer.c onscreen/native: Track GAMMA_LUT invalidations here 2023-02-01 08:40:53 +01:00
meta-renderer.h onscreen/native: Track GAMMA_LUT invalidations here 2023-02-01 08:40:53 +01:00
meta-screen-cast-area-stream-src.c backends/stage: Pass ClutterFrame to MetaStageWatchFunc 2023-04-07 12:19:23 +02:00
meta-screen-cast-area-stream-src.h
meta-screen-cast-area-stream.c
meta-screen-cast-area-stream.h
meta-screen-cast-monitor-stream-src.c screen-cast/monitor-src: Record frames with presentation time 2023-04-07 12:49:53 +02:00
meta-screen-cast-monitor-stream-src.h
meta-screen-cast-monitor-stream.c backend: Get 'is-stage-views-scaled' from backend 2022-12-17 13:52:51 +00:00
meta-screen-cast-monitor-stream.h
meta-screen-cast-session.c dbus-session: Make some properties part of the interface 2023-02-23 17:52:08 +00:00
meta-screen-cast-session.h Port screen cast and remote desktop to MetaDbusSessionManager 2023-02-23 17:52:08 +00:00
meta-screen-cast-stream-src.c screen-cast/src: Shuffle a variable around 2023-04-07 12:49:53 +02:00
meta-screen-cast-stream-src.h screen-cast/src: Add frame recording variant with timestamp 2023-04-07 12:49:48 +02:00
meta-screen-cast-stream.c ScreenCast: Allow recording new streams on active sessions 2021-12-07 19:23:52 +00:00
meta-screen-cast-stream.h
meta-screen-cast-virtual-stream-src.c backends/stage: Pass ClutterFrame to MetaStageWatchFunc 2023-04-07 12:19:23 +02:00
meta-screen-cast-virtual-stream-src.h
meta-screen-cast-virtual-stream.c remote-desktop/virtual: Drop absolute events if not active 2022-03-04 18:13:45 +00:00
meta-screen-cast-virtual-stream.h
meta-screen-cast-window-stream-src.c screen-cast-stream-src: Export damaged video regions 2023-04-06 23:09:43 +00:00
meta-screen-cast-window-stream-src.h
meta-screen-cast-window-stream.c screen-cast/window: Add API to check if stream-cast is active 2023-02-28 12:01:17 +01:00
meta-screen-cast-window-stream.h
meta-screen-cast-window.c screen-cast/window: Add API to check if stream-cast is active 2023-02-28 12:01:17 +01:00
meta-screen-cast-window.h screen-cast/window: Add API to check if stream-cast is active 2023-02-28 12:01:17 +01:00
meta-screen-cast.c Port screen cast and remote desktop to MetaDbusSessionManager 2023-02-23 17:52:08 +00:00
meta-screen-cast.h Port screen cast and remote desktop to MetaDbusSessionManager 2023-02-23 17:52:08 +00:00
meta-settings-private.h settings: Add Xwayland byte-swapped clients 2023-01-17 11:14:19 +01:00
meta-settings.c settings: Fix spelling of endianness 2023-01-29 17:37:43 +01:00
meta-stage-impl-private.h stage-impl: Change the backend pointer to MetaBackend 2022-01-17 09:48:51 +01:00
meta-stage-impl.c stage-impl: Do clipped redraws when drawing offscreen 2023-04-06 23:09:43 +00:00
meta-stage-private.h backends/stage: Pass ClutterFrame to MetaStageWatchFunc 2023-04-07 12:19:23 +02:00
meta-stage-view-private.h stage-view: Fix header include guard 2023-01-30 13:17:19 +00:00
meta-stage-view.c
meta-stage.c backends/stage: Pass ClutterFrame to MetaStageWatchFunc 2023-04-07 12:19:23 +02:00
meta-viewport-info.c
meta-viewport-info.h
meta-virtual-monitor.c virtual-monitor: Add way to change virtual monitor mode 2022-03-04 18:13:45 +00:00
meta-virtual-monitor.h tests/runner: Add 'resize_monitor' metatest command 2022-08-11 11:32:42 +00:00