summaryrefslogtreecommitdiff
path: root/src/interface.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/interface.c')
-rw-r--r--src/interface.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/interface.c b/src/interface.c
index a744cfd..9cc31f8 100644
--- a/src/interface.c
+++ b/src/interface.c
@@ -198,10 +198,17 @@ interface_clear(struct context *ctx)
{
g_source_remove(ctx->resize_source_id);
g_source_remove(ctx->input_source_id);
+#ifdef HAVE_SIGNALFD
close(ctx->signal_fd);
+#endif
clear();
refresh();
+ delwin(ctx->menu_win);
+ delwin(ctx->msg_win);
endwin();
+ delscreen(NULL);
+ if (ctx->status)
+ g_free(ctx->status);
}
void
@@ -278,7 +285,8 @@ interface_init(struct context *ctx)
exit(EXIT_FAILURE);
ctx->signal_fd = signalfd(-1, &mask, 0);
channel = g_io_channel_unix_new(ctx->signal_fd);
- g_io_add_watch(channel, G_IO_IN, resize_gio, ctx);
+ ctx->resize_source_id =
+ g_io_add_watch(channel, G_IO_IN, resize_gio, ctx);
g_io_channel_unref(channel);
}
#else