From: Jean-Philippe Orsini Date: Thu, 4 Apr 2013 07:13:04 +0000 (+0000) Subject: sort by position the list of sensors in the ubuntu application indicator X-Git-Tag: v0.8.0.5~86 X-Git-Url: http://git.wpitchoune.net/gitweb/?p=psensor.git;a=commitdiff_plain;h=37afe949c5c7aff3abe6e030161c64c8603877b2 sort by position the list of sensors in the ubuntu application indicator --- diff --git a/src/ui.c b/src/ui.c index bbb6cc2..c0a5cb6 100644 --- a/src/ui.c +++ b/src/ui.c @@ -343,7 +343,7 @@ static int cmp_sensors(const void *p1, const void *p2) return pos1 - pos2; } -struct psensor **ui_get_sensors_ordered_by_position(struct ui_psensor *ui) +struct psensor **ui_get_sensors_ordered_by_position(const struct ui_psensor *ui) { struct psensor **result; diff --git a/src/ui.h b/src/ui.h index 048d23c..a68a6c9 100644 --- a/src/ui.h +++ b/src/ui.h @@ -98,5 +98,5 @@ void ui_cb_about(GtkMenuItem *mi, gpointer data); void ui_cb_menu_quit(GtkMenuItem *mi, gpointer data); void ui_cb_sensor_preferences(GtkMenuItem *mi, gpointer data); -struct psensor **ui_get_sensors_ordered_by_position(struct ui_psensor *); +struct psensor **ui_get_sensors_ordered_by_position(const struct ui_psensor *); #endif diff --git a/src/ui_appindicator.c b/src/ui_appindicator.c index 6deedcb..9fbeaa7 100644 --- a/src/ui_appindicator.c +++ b/src/ui_appindicator.c @@ -163,17 +163,19 @@ build_sensor_menu_items(const struct ui_psensor *ui, { int i, j, n, celcius; const char *name; + struct psensor **sorted_sensors; free(menu_items); celcius = ui->config->temperature_unit == CELCIUS; - n = psensor_list_size(ui->sensors); + sorted_sensors = ui_get_sensors_ordered_by_position(ui); + n = psensor_list_size(sorted_sensors); menu_items = malloc(n * sizeof(GtkWidget *)); sensors = malloc((n + 1) * sizeof(struct psensor *)); for (i = 0, j = 0; i < n; i++) { - if (config_is_appindicator_enabled(ui->sensors[i]->id)) { - sensors[j] = ui->sensors[i]; + if (config_is_appindicator_enabled(sorted_sensors[i]->id)) { + sensors[j] = sorted_sensors[i]; name = sensors[j]->name; menu_items[j] = GTK_MENU_ITEM @@ -190,6 +192,8 @@ build_sensor_menu_items(const struct ui_psensor *ui, } sensors[j] = NULL; + + free(sorted_sensors); } static GtkWidget *get_menu(struct ui_psensor *ui)