associate_colors(ui.sensors);
associate_cb_alarm_raised(ui.sensors, &ui);
+#if !defined(HAVE_APPINDICATOR) && !defined(HAVE_APPINDICATOR_029)
ui_status_init(&ui);
+#endif
/* main window */
ui_window_create(&ui);
static GtkWidget *main_window;
static int appindicator_supported = 1;
static AppIndicator *indicator;
+static struct ui_psensor *ui_psensor;
static void cb_menu_show(GtkMenuItem *mi, gpointer data)
{
appindicator_supported = 0;
- return ui_status_get_icon();
+ return ui_status_get_icon(ui_psensor);
}
static void
{
GtkWidget *menu;
+ ui_psensor = ui;
main_window = ui->main_window;
indicator = app_indicator_new
int is_status_supported()
{
- return gtk_status_icon_is_embedded(status);
+ return status && gtk_status_icon_is_embedded(status);
}
void ui_status_cleanup()
{
log_debug("ui_status_cleanup()");
-
- g_object_unref(G_OBJECT(status));
+
+ if (status) {
+ g_object_unref(G_OBJECT(status));
+ status = NULL;
+ }
}
void ui_status_update(struct ui_psensor *ui, unsigned int attention)
status_attention = attention;
}
-GtkStatusIcon *ui_status_get_icon()
+GtkStatusIcon *ui_status_get_icon(struct ui_psensor *ui)
{
+ if (!status)
+ ui_status_init(ui);
+
return status;
}
void ui_status_update(struct ui_psensor *ui, unsigned int attention);
/* Whether status icon is supported i.e. visible. */
int is_status_supported();
-GtkStatusIcon *ui_status_get_icon();
+GtkStatusIcon *ui_status_get_icon(struct ui_psensor *ui);
#endif