mutter/src/wayland
Olivier Fourdan 68ec9ac017 wayland: No xdg-output events without a logical monitor
To avoid a known race condition in the wl_output protocol documented in
https://phabricator.freedesktop.org/T7722, mutter delays the `wl_output`
destruction but nullify the `logical_monitor` associated with the
`wl_output` and the binding routine `bind_output()` makes sure not to
send wl_output events if the `logical_monitor` is `NULL` (see commit
1923db97).

The binding routine for `xdg_output` however does not check for such a
condition, hence if the output configuration changes while a client is
binding to xdg-output (typically Xwayland at startup), mutter would
crash while trying to access the `logical_monitor` which was nullified
by the change in configuration.

Just like `bind_output()` does for wl_output, do not send xdg-output
events if there is no `logical_monitor` yet.

Closes: https://gitlab.gnome.org/GNOME/mutter/issues/194
2018-09-25 15:14:18 +02:00
..
protocol protocol: Add internal text input protocol 2018-01-18 16:20:45 +01: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 wayland: Add MetaWaylandSurface::geometry-changed signal 2018-04-23 21:31:19 +02:00
meta-pointer-confinement-wayland.h Implement support for the wp_pointer_constraints protocol 2016-02-16 19:02:48 +08:00
meta-pointer-lock-wayland.c Implement support for the wp_pointer_constraints protocol 2016-02-16 19:02:48 +08:00
meta-pointer-lock-wayland.h Implement support for the wp_pointer_constraints protocol 2016-02-16 19:02:48 +08:00
meta-wayland-actor-surface.c wayland/xdg-shell: Queue frame callbacks on new actor after resetting 2018-08-27 11:43:53 +00:00
meta-wayland-actor-surface.h wayland/xdg-shell: Queue frame callbacks on new actor after resetting 2018-08-27 11:43:53 +00:00
meta-wayland-buffer.c wayland: Always realize buffers at surface commit time 2018-06-15 13:45:25 -07:00
meta-wayland-buffer.h wayland: Always realize buffers at surface commit time 2018-06-15 13:45:25 -07:00
meta-wayland-cursor-surface.c Stop using MetaScreen where it is unnecessary 2018-07-06 19:47:16 +02:00
meta-wayland-cursor-surface.h wayland: Rename cursor role types 2018-06-15 19:09:49 +00:00
meta-wayland-data-device-private.h wayland: Implement the (so far internal) primary selection protocol 2016-02-26 19:51:32 +01:00
meta-wayland-data-device.c wayland: Abstract access to the actor corresponding to a wl_surface 2018-04-23 12:24:46 +02:00
meta-wayland-data-device.h dnd: Implement DnD handling code in Wayland 2017-03-07 08:28:36 +08:00
meta-wayland-dma-buf.c wayland: Realize dmabuf buffers before trying to attach them 2018-06-21 21:47:05 +02:00
meta-wayland-dma-buf.h wayland: Add zwp_linux_dmabuf_v1 support 2017-08-01 19:05:50 +08:00
meta-wayland-egl-stream.c wayland: Create EGLStream-backed buffers through wl_eglstream_controller 2018-06-15 13:45:29 -07:00
meta-wayland-egl-stream.h wayland: Create EGLStream-backed buffers through wl_eglstream_controller 2018-06-15 13:45:29 -07:00
meta-wayland-gtk-shell.c wayland/gtk-shell: Handle requests after toplevel was unmanaged 2018-08-27 11:43:53 +00:00
meta-wayland-gtk-shell.h wayland: Move out gtk_shell from meta-wayland-surface.c 2016-08-25 12:19:40 +08:00
meta-wayland-inhibit-shortcuts-dialog.c wayland: Keep the inhibit shortcut dialog 2017-09-14 09:32:26 +02:00
meta-wayland-inhibit-shortcuts-dialog.h wayland: Keep the inhibit shortcut dialog 2017-09-14 09:32:26 +02:00
meta-wayland-inhibit-shortcuts.c wayland: send shortcut inhibit “active” event 2018-02-05 09:06:49 +00:00
meta-wayland-inhibit-shortcuts.h wayland: add keyboard shortcuts inhibitor protocol 2017-08-02 11:58:55 +02: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/enum: Add CLUTTER_EVENT_FLAG_REPEATED for auto-repeated events 2018-08-20 10:16:33 +00:00
meta-wayland-keyboard.h wayland/keyboard: Create a separate keymap shm file per resource 2018-08-17 16:34:05 +02:00
meta-wayland-legacy-xdg-shell.c wayland/legacy-xdg-shell: Handle requests after toplevel was unmanaged 2018-08-27 11:43:53 +00:00
meta-wayland-legacy-xdg-shell.h wayland: Add support for stable xdg-shell 2018-02-23 18:57:53 +08:00
meta-wayland-outputs.c wayland: No xdg-output events without a logical monitor 2018-09-25 15:14:18 +02:00
meta-wayland-outputs.h wayland: Add xdg-output support 2017-12-15 14:18:14 +01:00
meta-wayland-pointer-constraints.c wayland/pointer-constraints: Don't include window frame in region 2016-10-13 12:59:41 +08:00
meta-wayland-pointer-constraints.h MetaWaylandPointerConstraint: Use own 'appears-focused' signal handler 2016-03-09 14:26:53 +08:00
meta-wayland-pointer-gesture-pinch.c wayland: Forward touchpad pinch n_fingers information to clients 2016-11-04 16:28:30 +01:00
meta-wayland-pointer-gesture-pinch.h wayland: Implement the wl_pointer_gesture_pinch interface 2015-08-10 17:23:23 +02:00
meta-wayland-pointer-gesture-swipe.c clutter: Rename touchpad gesture n_fingers getter to be more generic 2016-11-04 16:28:30 +01:00
meta-wayland-pointer-gesture-swipe.h wayland: Implement the wl_pointer_gesture_swipe interface 2015-08-10 17:23:23 +02:00
meta-wayland-pointer-gestures.c configure.ac: Add AC_GNU_SOURCE 2016-07-20 14:23:48 +08:00
meta-wayland-pointer-gestures.h wayland: Implement wl_pointer_gestures 2015-08-10 17:30:12 +02:00
meta-wayland-pointer.c wayland: Rename cursor role types 2018-06-15 19:09:49 +00:00
meta-wayland-pointer.h wayland/pointer: Track lifetime of current surface 2017-06-01 12:46:32 +08:00
meta-wayland-popup.c Stop using MetaScreen where it is unnecessary 2018-07-06 19:47:16 +02:00
meta-wayland-popup.h wayland: Add 'MetaWaylandPopupSurface' bridge between popup and surface 2016-05-01 21:11:27 +08:00
meta-wayland-private.h wayland-private: Make display_name non-const 2018-07-31 23:40:01 +02:00
meta-wayland-region.c wayland: Make the MetaWaylandRegion type opaque 2014-10-07 20:44:19 -07:00
meta-wayland-region.h wayland: Make the MetaWaylandRegion type opaque 2014-10-07 20:44:19 -07:00
meta-wayland-seat.c wayland: Implement text-input from wayland-protocols 2018-08-14 15:43:21 +00:00
meta-wayland-seat.h wayland: Implement text-input from wayland-protocols 2018-08-14 15:43:21 +00:00
meta-wayland-shell-surface.c window: Pass flag to meta_window_update_monitor() instead of bool 2018-08-27 08:33:00 +00:00
meta-wayland-shell-surface.h wayland/xdg-shell: Intersect set geometry with subsurface tree geometry 2018-08-20 14:37:10 +00:00
meta-wayland-subsurface.c wayland: Use surface size helper functions 2018-08-20 14:37:10 +00:00
meta-wayland-subsurface.h wayland: Push actor state instead of itself pulling 2018-02-23 18:57:47 +08:00
meta-wayland-surface.c wayland/surface: Add API to cache frame callbacks 2018-08-27 11:43:53 +00:00
meta-wayland-surface.h wayland/surface: Add API to cache frame callbacks 2018-08-27 11:43:53 +00:00
meta-wayland-tablet-cursor-surface.c wayland: Rename cursor role types 2018-06-15 19:09:49 +00:00
meta-wayland-tablet-cursor-surface.h wayland: Rename cursor role types 2018-06-15 19:09:49 +00:00
meta-wayland-tablet-manager.c wayland: Add pointer from MetaWaylandTabletSeat to MetaWaylandSeat 2016-07-22 13:31:09 +02:00
meta-wayland-tablet-manager.h wayland: Add methods to update the position of different tools' cursors 2016-05-03 18:17:01 +02:00
meta-wayland-tablet-pad-group.c wayland: Clean up MetaWaylandTabletPadGroup 2017-02-10 20:11:19 +01:00
meta-wayland-tablet-pad-group.h wayland: Export function to tell whether a button belongs to a pad group 2016-07-22 13:31:09 +02:00
meta-wayland-tablet-pad-ring.c wayland: fix copy/pasto sending tool removed on rings/strips 2017-02-07 14:04:52 +01:00
meta-wayland-tablet-pad-ring.h wayland: Add method to relate a pad ring to its group 2016-07-22 13:31:09 +02:00
meta-wayland-tablet-pad-strip.c wayland: fix copy/pasto sending tool removed on rings/strips 2017-02-07 14:04:52 +01:00
meta-wayland-tablet-pad-strip.h wayland: Add method to relate a pad strip to its group 2016-07-22 13:31:09 +02:00
meta-wayland-tablet-pad.c wayland: Handle NULL event node/vendor/product on tablet methods 2018-02-09 13:39:15 +01:00
meta-wayland-tablet-pad.h wayland: Move strips/rings management back to MetaWaylandTabletPad 2016-07-22 13:31:09 +02:00
meta-wayland-tablet-seat.c wayland: Use clutter_input_device_is_grouped() for tablet grouping 2017-03-13 19:34:10 +01:00
meta-wayland-tablet-seat.h wayland: Add focus management to pads 2016-07-22 13:31:09 +02:00
meta-wayland-tablet-tool.c backends/cursor: Move out Xcursor functionality into own type 2018-06-15 19:09:51 +00:00
meta-wayland-tablet-tool.h backends/cursor: Move out Xcursor functionality into own type 2018-06-15 19:09:51 +00:00
meta-wayland-tablet.c wayland: Handle NULL event node/vendor/product on tablet methods 2018-02-09 13:39:15 +01:00
meta-wayland-tablet.h wayland: Remove unused list from MetaWaylandTablet 2016-05-10 17:45:04 +02:00
meta-wayland-text-input-legacy.c wayland: Make gtk-text-input "legacy" 2018-08-14 15:43:21 +00:00
meta-wayland-text-input-legacy.h wayland: Make gtk-text-input "legacy" 2018-08-14 15:43:21 +00:00
meta-wayland-text-input.c wayland: Implement text-input from wayland-protocols 2018-08-14 15:43:21 +00:00
meta-wayland-text-input.h wayland: Implement text-input from wayland-protocols 2018-08-14 15:43:21 +00:00
meta-wayland-touch.c Don't cast free function passed to g_clear_pointer 2018-07-31 23:40:01 +02:00
meta-wayland-touch.h wayland: Move device seat association to MetaWaylandInputDevice 2016-09-15 09:55:34 +08:00
meta-wayland-types.h wayland: Add common object for device classes 2016-09-15 09:54:55 +08:00
meta-wayland-versions.h wayland: Implement text-input from wayland-protocols 2018-08-14 15:43:21 +00:00
meta-wayland-wl-shell.c wayland: Use helper to set shell surface window 2018-02-23 18:57:50 +08: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/xdg-foreign: Fix child surface validation check 2018-05-07 19:16:40 +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: Handle requests after toplevel was unmanaged 2018-08-27 11:43:53 +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: Implement text-input from wayland-protocols 2018-08-14 15:43:21 +00:00
meta-wayland.h wayland: Notify actively of xwayland window/surface associations 2018-04-23 21:31:19 +02:00
meta-window-wayland.c window/wayland: Freeze updates until shown 2018-09-19 15:39:54 +00:00
meta-window-wayland.h wayland: Add function to query if window needs move or resize 2018-04-25 21:55:05 -03:00
meta-window-xwayland.c xwayland: add _XWAYLAND_MAY_GRAB_KEYBOARD property 2017-12-18 13:15:13 +01:00
meta-window-xwayland.h xwayland: Add MetaWindowXwayland 2017-12-18 13:15:09 +01:00
meta-xwayland-grab-keyboard.c wayland: Clean up xwayland grabs even if surface is gone 2018-08-06 11:22:51 +00:00
meta-xwayland-grab-keyboard.h wayland: Add Xwayland grab keyboard support 2017-12-18 13:15:20 +01:00
meta-xwayland-private.h xwayland: Destroy selection bridge windows before closing X11 display 2018-07-06 19:47:16 +02:00
meta-xwayland-selection-private.h wayland: Make MetaWaylandDataSource ownership protocol specific 2015-06-30 11:23:40 +08:00
meta-xwayland-selection.c Don't cast free function passed to g_clear_pointer 2018-07-31 23:40:01 +02:00
meta-xwayland.c xwayland: Destroy selection bridge windows before closing X11 display 2018-07-06 19:47:16 +02:00
meta-xwayland.h wayland: Notify actively of xwayland window/surface associations 2018-04-23 21:31:19 +02:00