summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--video/out/wayland_common.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/video/out/wayland_common.c b/video/out/wayland_common.c
index 533b8c056d..109e2dc4b0 100644
--- a/video/out/wayland_common.c
+++ b/video/out/wayland_common.c
@@ -805,8 +805,12 @@ static int vo_wayland_check_events (struct vo *vo)
* when pausing no input events get queued so we have to check if there
* are events to read from the file descriptor through poll */
if (poll(&fd, 1, 0) > 0) {
- if (fd.revents & POLLERR || fd.revents & POLLHUP)
- MP_ERR(wl, "error occurred on the display fd\n");
+ if (fd.revents & POLLERR || fd.revents & POLLHUP) {
+ MP_FATAL(wl, "error occurred on the display fd: "
+ "closing file descriptor\n");
+ close(wl->display.display_fd);
+ mp_input_put_key(vo->input_ctx, MP_KEY_CLOSE_WIN);
+ }
if (fd.revents & POLLIN)
wl_display_dispatch(dp);
if (fd.revents & POLLOUT)