mutter/src/backends
Jonas Ådahl 237cdeef4c seat-impl: Destroy libinput objects on input thread on tear down
We didn't tear down the libinput objects in the right thread when
exiting, but did so after the input thread exited.

We also tried to destroy the libinput devices after the libinput context
was destroyed, which isn't allowed.

Fix these two issues by tearing down the libinput objects in a input
thread task that when done exits the input thread. This effectively
"flushes" the input thread tasks while destroying the libinput objects
just before the thread exits.

While it might fine to tear down libinput objects in an arbitrary (main
in this case) thread while making sure nothing pokes at it in parallel
(e.g. the input thread is gone), libinput is by definition single
threaded, and could theoretically make assumptions about this, and we
shouldn't cause any possible surprises here, so make sure to destroy it
all in the right thread.

This fixes an abort() on exit caused by an assert about invalid object
destruction in libinput.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1663>
2021-01-11 17:17:39 +00:00
..
native seat-impl: Destroy libinput objects on input thread on tear down 2021-01-11 17:17:39 +00:00
x11 x11: Support the CTM (color transform matrix) RandR property 2021-01-11 13:44:54 +00:00
edid-parse.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
edid.h edid: Remove unused declarations 2014-09-12 11:55:08 -06:00
gsm-inhibitor-flag.h idle-monitor: Take idle inhibition into account 2018-04-16 13:28:03 +02:00
meta-backend-private.h backends: Straighten MetaInputSettings creation 2020-11-27 15:14:34 +00:00
meta-backend-types.h backend: Don't pull generated headers (indirectly) 2020-10-06 16:16:21 +00:00
meta-backend.c backends/native: Add missing seat finalization paths 2020-11-27 15:14:34 +00:00
meta-barrier-private.h Use G_DECLARE_DERIVABLE/FINAL_TYPE on some types 2018-12-21 19:48:50 +00:00
meta-barrier.c barrier: Complain loudly if bogus barriers are created 2020-11-27 17:47:35 +01:00
meta-crtc-mode.c crtc-kms: Make KMS CRTC mode a type inheriting MetaCrtcMode 2020-06-11 09:20:16 +00:00
meta-crtc-mode.h crtc-kms: Make KMS CRTC mode a type inheriting MetaCrtcMode 2020-06-11 09:20:16 +00:00
meta-crtc.c crtc: Move out MetaCrtcMode into its own file 2020-06-10 18:54:51 +00:00
meta-crtc.h crtc: Move out MetaCrtcMode into its own file 2020-06-10 18:54:51 +00:00
meta-cursor-renderer.c clutter: Drop clutter_input_device_get_coords() method 2020-11-27 15:14:33 +00:00
meta-cursor-renderer.h backends: Move HW cursor inhibitors to MetaBackend 2020-11-27 15:14:33 +00:00
meta-cursor-sprite-xcursor.c cursor-sprite/xcursor: Fall back to gray square if missing theme 2020-11-16 13:49:05 +00:00
meta-cursor-sprite-xcursor.h cursor-renderer: Fetch instead of pass Xcursor image when realizing 2018-06-15 19:09:52 +00:00
meta-cursor-tracker-private.h core: Centralize cursor renderer and tracker updates 2020-11-27 15:14:33 +00:00
meta-cursor-tracker.c backends: Make pointer cursor invisible until the stage is shown 2020-11-27 15:14:33 +00:00
meta-cursor.c backends: Add argument for best scale on MetaCursorSprite::prepare-at 2020-11-27 15:14:33 +00:00
meta-cursor.h backends: Add argument for best scale on MetaCursorSprite::prepare-at 2020-11-27 15:14:33 +00:00
meta-dbus-session-watcher.c dbus-session-watcher: Chain up to parent finalize() 2019-10-14 09:09:01 +02:00
meta-dbus-session-watcher.h Add remote desktop and screen cast functionality 2017-08-29 14:39:04 +08:00
meta-display-config-shared.h Use a consistent style for enum braces 2019-02-28 09:31:01 +01:00
meta-dnd-private.h compositor: Move out X11 compositing code into sub type 2019-08-19 08:44:58 +00:00
meta-egl-ext.h EGL: Include EGL/eglmesaext.h 2019-10-21 14:04:30 +00:00
meta-egl.c EGL: Include EGL/eglmesaext.h 2019-10-21 14:04:30 +00:00
meta-egl.h EGL: Include EGL/eglmesaext.h 2019-10-21 14:04:30 +00:00
meta-gles3-table.h backends: Add OpenGL ES 3 abstraction layer 2017-10-05 18:17:26 -04:00
meta-gles3.c Fix const qualifier usage 2019-01-22 18:31:53 +01:00
meta-gles3.h Fix const qualifier usage 2019-01-22 18:31:53 +01:00
meta-gpu.c output: Move output info to MetaOutputInfo struct 2020-06-10 18:54:50 +00:00
meta-gpu.h backend: Move GPU ownership from the monitor manager to the backend 2019-06-20 13:31:55 +00:00
meta-idle-monitor-dbus.c Make meta_* logging utilities not require line break 2020-10-08 16:38:41 +02:00
meta-idle-monitor-dbus.h Start molding out a new src/backends/ dir 2014-03-31 22:11:00 -04:00
meta-idle-monitor-private.h backends: Do not use device IDs on idle monitors 2020-01-30 18:11:23 +01:00
meta-idle-monitor.c backends: Drop meta_idle_monitor_get_for_device() 2020-02-12 22:07:55 +00:00
meta-input-device-private.h backends: Add MetaInputDevice derivable class 2020-03-24 18:07:31 +00:00
meta-input-device.c backends: move 'input_device' to HAVE_LIBWACOM scope 2020-05-03 23:35:03 +01:00
meta-input-mapper-private.h backends: Make MetaInputMapper take over MetaInputSettings public API 2020-11-27 15:14:33 +00:00
meta-input-mapper.c backends: Disconnect MetaInputMapper signal connection on device dispose 2020-12-28 19:11:26 +01:00
meta-input-settings-private.h backends: Handle numlock saving/restoring directly in backends 2020-11-27 15:14:33 +00:00
meta-input-settings.c backends: Handle numlock saving/restoring directly in backends 2020-11-27 15:14:33 +00:00
meta-keymap-utils.c *: Fix spelling mistakes found by codespell 2020-08-29 09:10:31 +00:00
meta-keymap-utils.h compositor: use XDG_CONFIG_HOME as initial lookup path for xkb 2020-06-08 11:29:30 +00:00
meta-logical-monitor.c crtc: Move MetaCrtcConfig field to instance private 2020-06-10 18:54:50 +00:00
meta-logical-monitor.h *: Fix spelling mistakes found by codespell 2020-08-29 09:10:31 +00:00
meta-monitor-config-manager.c monitor-config-manager: Handle multiple builtin panels gracefully 2020-11-27 09:11:43 +01:00
meta-monitor-config-manager.h monitor-manager: Rename *Info structs to *Assignment 2020-06-10 18:54:50 +00:00
meta-monitor-config-migration.c monitor-config-migration: Discard if configured mode is missing 2017-10-04 09:45:02 -04:00
meta-monitor-config-migration.h meta: Hide libmutter symbols by default and selectively export them 2019-01-23 14:18:13 +01:00
meta-monitor-config-store.c Remove misplaced line break in g_* logging functions 2020-10-08 16:38:41 +02:00
meta-monitor-config-store.h meta: Hide libmutter symbols by default and selectively export them 2019-01-23 14:18:13 +01:00
meta-monitor-manager-dummy.c backend/dummy: Do not enforce minimum screen size 2020-10-23 12:12:15 +01:00
meta-monitor-manager-dummy.h crtc: Make implementations inherit MetaCrtc 2020-06-10 18:54:51 +00:00
meta-monitor-manager-private.h x11: Support the CTM (color transform matrix) RandR property 2021-01-11 13:44:54 +00:00
meta-monitor-manager.c x11: Support the CTM (color transform matrix) RandR property 2021-01-11 13:44:54 +00:00
meta-monitor-transform.c monitor-transform: Add API to transform point 2020-03-26 16:18:28 +00:00
meta-monitor-transform.h crtc: Move all_transforms field into instance private 2020-06-10 18:54:50 +00:00
meta-monitor.c *: Fix spelling mistakes found by codespell 2020-08-29 09:10:31 +00:00
meta-monitor.h crtc: Move logical monitor pointer to MetaMonitor 2020-02-25 18:39:51 +01:00
meta-orientation-manager.c backends: Add method/property to get accelerometer availability 2020-09-05 07:25:02 +00:00
meta-orientation-manager.h backends: Add method/property to get accelerometer availability 2020-09-05 07:25:02 +00:00
meta-output.c output: Move edid parse function to the right file 2020-10-21 17:04:44 +05:30
meta-output.h x11: Support the CTM (color transform matrix) RandR property 2021-01-11 13:44:54 +00:00
meta-pointer-constraint.c backends: Delegate pointer confinements to an impl object 2020-11-27 15:14:33 +00:00
meta-pointer-constraint.h backends: Delegate pointer confinements to an impl object 2020-11-27 15:14:33 +00:00
meta-profiler.c Remove misplaced line break in g_* logging functions 2020-10-08 16:38:41 +02:00
meta-profiler.h profile: Add a Sysprof-based profiler 2019-05-31 11:57:07 -03:00
meta-remote-access-controller-private.h remote-access-controller: Allow inhibiting remote access 2020-04-27 14:31:06 +00:00
meta-remote-access-controller.c remote-access-handle: Add 'is-recording' property 2020-07-31 10:41:38 +02:00
meta-remote-desktop-session.c remote-desktop: Allow using custom scroll source for NotifyPointerAxis 2021-01-11 10:12:53 +01:00
meta-remote-desktop-session.h Add remote access controller API 2018-07-20 16:49:49 +02:00
meta-remote-desktop.c Remove misplaced line break in g_* logging functions 2020-10-08 16:38:41 +02:00
meta-remote-desktop.h remote-access-controller: Allow inhibiting remote access 2020-04-27 14:31:06 +00:00
meta-renderer-view.c renderer-view: Use graphene APIs 2020-10-06 15:34:48 +00:00
meta-renderer-view.h renderer-view: Keep track of what CRTC it is associated with 2020-07-02 19:36:50 +02:00
meta-renderer.c stage-view: Add clutter_stage_view_destroy() 2020-08-13 06:34:04 +00:00
meta-renderer.h clutter: Paint views with individual frame clocks 2020-07-02 19:36:51 +02:00
meta-screen-cast-area-stream-src.c backends: Move HW cursor inhibitors to MetaBackend 2020-11-27 15:14:33 +00:00
meta-screen-cast-area-stream-src.h screen-cast: Add RecordArea for screen cast arbitrary area 2020-04-23 14:45:53 +00:00
meta-screen-cast-area-stream.c screen-cast: Add screen cast flag to streams 2020-07-30 09:51:16 +02:00
meta-screen-cast-area-stream.h screen-cast: Add screen cast flag to streams 2020-07-30 09:51:16 +02:00
meta-screen-cast-monitor-stream-src.c backends: Move HW cursor inhibitors to MetaBackend 2020-11-27 15:14:33 +00:00
meta-screen-cast-monitor-stream-src.h ScreenCast: Pass PipeWire stream node ID directly 2017-08-29 14:39:04 +08:00
meta-screen-cast-monitor-stream.c screen-cast: Add screen cast flag to streams 2020-07-30 09:51:16 +02:00
meta-screen-cast-monitor-stream.h screen-cast: Add screen cast flag to streams 2020-07-30 09:51:16 +02:00
meta-screen-cast-session.c remote-access-handle: Add 'is-recording' property 2020-07-31 10:41:38 +02:00
meta-screen-cast-session.h screen-cast-session: Add 'disable-animations' property 2020-02-20 10:40:42 +00:00
meta-screen-cast-stream-src.c cogl: Turn CoglFramebuffer, CoglOffscreen and CoglOnscreen into GObjects 2020-10-16 16:17:38 +00:00
meta-screen-cast-stream-src.h screen-cast: Track and always record cursors 2020-08-05 11:11:38 +02:00
meta-screen-cast-stream.c screen-cast: Add screen cast flag to streams 2020-07-30 09:51:16 +02:00
meta-screen-cast-stream.h screen-cast: Add screen cast flag to streams 2020-07-30 09:51:16 +02:00
meta-screen-cast-window-stream-src.c core: Centralize cursor renderer and tracker updates 2020-11-27 15:14:33 +00:00
meta-screen-cast-window-stream-src.h screen-cast-session: Add screen-cast window mode 2018-12-14 13:26:16 +01:00
meta-screen-cast-window-stream.c screen-cast: Add screen cast flag to streams 2020-07-30 09:51:16 +02:00
meta-screen-cast-window-stream.h screen-cast: Add screen cast flag to streams 2020-07-30 09:51:16 +02:00
meta-screen-cast-window.c window-stream-source: Draw into DMA buffer image 2020-02-28 15:52:19 -03:00
meta-screen-cast-window.h window-stream-source: Draw into DMA buffer image 2020-02-28 15:52:19 -03:00
meta-screen-cast.c Remove misplaced line break in g_* logging functions 2020-10-08 16:38:41 +02:00
meta-screen-cast.h screen-cast: Disable DMA buffer based screen casting for QXL 2020-08-29 10:32:20 +00:00
meta-settings-private.h screen-cast: Add 'dma-buf-screen-sharing' experimental feature 2020-09-14 16:33:16 +00:00
meta-settings.c screen-cast: Add 'dma-buf-screen-sharing' experimental feature 2020-09-14 16:33:16 +00:00
meta-stage-private.h cursor-renderer: Always keep the cursor overlay on the stage 2020-08-05 11:11:38 +02:00
meta-stage.c clutter: Simplify stage state management 2020-12-08 15:37:38 +00:00
meta-viewport-info.c backends: Add method to get extents from viewport info 2020-11-27 15:14:33 +00:00
meta-viewport-info.h backends: Add method to get extents from viewport info 2020-11-27 15:14:33 +00:00