diff --git a/swaybar/bar.c b/swaybar/bar.c index d51c4ec7..10a840cc 100644 --- a/swaybar/bar.c +++ b/swaybar/bar.c @@ -418,7 +418,11 @@ static void ipc_in(int fd, short mask, void *_bar) { static void status_in(int fd, short mask, void *_bar) { struct swaybar *bar = (struct swaybar *)_bar; - if (status_handle_readable(bar->status)) { + if (mask & (POLLHUP | POLLERR)) { + status_error(bar->status, "[error reading from status command]"); + render_all_frames(bar); + remove_event(fd); + } else if (status_handle_readable(bar->status)) { render_all_frames(bar); } }