From 145e6fc402fd64176352762e82899661808103c8 Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Wed, 28 Nov 2012 22:16:07 +0100 Subject: [PATCH] main: correctly remove all displays on uterm-video shutdown If we close an uterm-video object, we must correctly remove all displays first. Signed-off-by: David Herrmann --- src/kmscon_main.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/kmscon_main.c b/src/kmscon_main.c index c1d73bd..b02d6bd 100644 --- a/src/kmscon_main.c +++ b/src/kmscon_main.c @@ -350,10 +350,19 @@ err_free: static void app_seat_remove_video(struct app_seat *seat, struct app_video *vid) { + struct uterm_display *disp; + log_debug("free video device %s on seat %s", vid->node, seat->name); shl_dlist_unlink(&vid->list); uterm_video_unregister_cb(vid->video, app_seat_video_event, vid); + + disp = uterm_video_get_displays(vid->video); + while (disp) { + kmscon_seat_remove_display(seat->seat, disp); + disp = uterm_display_next(disp); + } + uterm_video_unref(vid->video); free(vid->node); free(vid);