xdg-output: destroy outputs before manager
Since output_destroy() calls wl_list_remove() on the output's link,
the manager must still be valid. This is the same bug fixed in bf926e3
but with a different interface.
This commit is contained in:
parent
702eed5cbd
commit
f6fe439718
|
@ -227,6 +227,10 @@ static void handle_layout_change(struct wl_listener *listener, void *data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void manager_destroy(struct wlr_xdg_output_manager_v1 *manager) {
|
static void manager_destroy(struct wlr_xdg_output_manager_v1 *manager) {
|
||||||
|
struct wlr_xdg_output_v1 *output, *tmp;
|
||||||
|
wl_list_for_each_safe(output, tmp, &manager->outputs, link) {
|
||||||
|
output_destroy(output);
|
||||||
|
}
|
||||||
wlr_signal_emit_safe(&manager->events.destroy, manager);
|
wlr_signal_emit_safe(&manager->events.destroy, manager);
|
||||||
wl_list_remove(&manager->display_destroy.link);
|
wl_list_remove(&manager->display_destroy.link);
|
||||||
wl_list_remove(&manager->layout_add.link);
|
wl_list_remove(&manager->layout_add.link);
|
||||||
|
|
Loading…
Reference in New Issue