mirror of
https://github.com/brl/mutter.git
synced 2024-12-25 12:32:05 +00:00
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 commit1923db97
). 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 (cherry picked from commit68ec9ac017
)
This commit is contained in:
parent
49c06fd9b1
commit
6ed36cd6e3
@ -592,6 +592,9 @@ meta_xdg_output_manager_get_xdg_output (struct wl_client *client,
|
||||
wayland_output->xdg_output_resources =
|
||||
g_list_prepend (wayland_output->xdg_output_resources, xdg_output_resource);
|
||||
|
||||
if (!wayland_output->logical_monitor)
|
||||
return;
|
||||
|
||||
send_xdg_output_events (xdg_output_resource,
|
||||
wayland_output,
|
||||
wayland_output->logical_monitor,
|
||||
|
Loading…
Reference in New Issue
Block a user