notify-send: Handle Ctrl+C by closing the notification before exiting

Avoid leaving notifications we're waiting for around on SIGNINT
This commit is contained in:
Marco Trevisan (Treviño) 2022-05-17 00:31:59 +02:00
parent 07a2b2e32c
commit 74f87250a3
1 changed files with 15 additions and 0 deletions

View File

@ -26,6 +26,7 @@
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <glib-unix.h>
#include <glib/gprintf.h>
#define N_(x) (x)
@ -148,6 +149,19 @@ handle_closed (NotifyNotification *notify,
g_main_loop_quit (loop);
}
static gboolean
on_sigint (gpointer data)
{
NotifyNotification *notification = data;
g_printerr ("Wait cancelled, closing notification\n");
notify_notification_close (notification, NULL);
g_main_loop_quit (loop);
return FALSE;
}
static void
handle_action (NotifyNotification *notify,
char *action,
@ -458,6 +472,7 @@ main (int argc, char *argv[])
}
if (wait) {
g_unix_signal_add (SIGINT, on_sigint, notify);
loop = g_main_loop_new (NULL, FALSE);
g_main_loop_run (loop);
g_main_loop_unref (loop);