n = config_get_sensor_name(s->id);
- if (n)
+ if (n) {
+ free(s->name);
s->name = n;
+ }
sensor_cur++;
}
glib_micro_version);
}
+static void activate(GApplication *application,
+ gpointer data)
+{
+ ui_window_show((struct ui_psensor *)data);
+}
+
int main(int argc, char **argv)
{
struct ui_psensor ui;
GThread *thread;
int optc, cmdok, opti, use_libatasmart;
char *url = NULL;
+ GApplication *app;
program_name = argv[0];
log_init();
+ app = g_application_new("wpitchoune.psensor", 0);
+ g_application_register(app, NULL, NULL);
+
+ if (g_application_get_is_remote(app)) {
+ g_application_activate(app);
+ log_debug(_("Psensor instance already exists"));
+ exit(EXIT_SUCCESS);
+ }
+
+ g_signal_connect(app, "activate", G_CALLBACK(activate), &ui);
+
log_glib_info();
#if !(GLIB_CHECK_VERSION(2, 31, 0))
/*
#if defined(HAVE_APPINDICATOR) || defined(HAVE_APPINDICATOR_029)
ui_appindicator_init(&ui);
+ ui_status_set_visible(1);
#endif
/*
/* main loop */
gtk_main();
+ log_debug("Quitting...");
+
g_mutex_lock(ui.sensors_mutex);
psensor_cleanup();
config_cleanup();
+ log_debug("Cleanup done, closing log");
+
log_close();
return 0;