From b85daf94830a3ca39d59237fdb07bc33ede1c450 Mon Sep 17 00:00:00 2001 From: Robert Tari Date: Sun, 24 Jan 2021 03:38:44 +0100 Subject: 100% re-write of the keyboard indicator in plain C. --- src/main.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/main.c (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c new file mode 100644 index 00000000..eb6a1b9a --- /dev/null +++ b/src/main.c @@ -0,0 +1,40 @@ +#include +#include +#include +#include +#include "service.h" + +static void onNameLost(gpointer instance G_GNUC_UNUSED, gpointer pLoop) +{ + g_message("exiting: service couldn't acquire or lost ownership of busname"); + g_main_loop_quit((GMainLoop*)pLoop); +} + +static gboolean onQuit(gpointer pData) +{ + GMainLoop *pLoop = (GMainLoop*)pData; + g_main_loop_quit(pLoop); + + return G_SOURCE_REMOVE; +} + +int main(int argc G_GNUC_UNUSED, char ** argv G_GNUC_UNUSED) +{ + setlocale(LC_ALL, ""); + bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR); + textdomain(GETTEXT_PACKAGE); + + IndicatorKeyboardService *pService = indicator_keyboard_service_new(NULL); + GMainLoop *pLoop = g_main_loop_new(NULL, FALSE); + + g_signal_connect(pService, "name-lost", G_CALLBACK(onNameLost), pLoop); + g_unix_signal_add(SIGINT, onQuit, pLoop); + + indicator_keyboard_service_AddKeyboardSource(pService); + + g_main_loop_run(pLoop); + g_main_loop_unref(pLoop); + g_clear_object(&pService); + + return 0; +} -- cgit v1.2.3