fixed the selection of the sensor
[psensor.git] / src / ui_sensorpref.c
index 8c45eaf..3fef8cc 100644 (file)
@@ -423,12 +423,12 @@ void ui_sensorpref_dialog_run(struct psensor *sensor, struct ui_psensor *ui)
 {
        GtkDialog *diag;
        gint result;
+       guint ok;
        GtkBuilder *builder;
-       GError *error = NULL;
+       GError *error;
        GtkTreeView *w_sensors_list;
-       guint ok;
        GtkListStore *store;
-       struct psensor **s_cur, *s;
+       struct psensor **s_cur, *s, **ordered_sensors;
        GtkTreeSelection *selection;
        struct cb_data cbdata;
        GtkTreeIter iter;
@@ -441,6 +441,7 @@ void ui_sensorpref_dialog_run(struct psensor *sensor, struct ui_psensor *ui)
        builder = gtk_builder_new();
        cbdata.builder = builder;
 
+       error = NULL;
        ok = gtk_builder_add_from_file
                (builder,
                 PACKAGE_DATA_DIR G_DIR_SEPARATOR_S "sensor-edit.glade",
@@ -461,7 +462,8 @@ void ui_sensorpref_dialog_run(struct psensor *sensor, struct ui_psensor *ui)
        store = GTK_LIST_STORE(gtk_builder_get_object(builder,
                                                      "sensors_liststore"));
 
-       for (s_cur = ui->sensors; *s_cur; s_cur++) {
+       ordered_sensors = ui_get_sensors_ordered_by_position(ui);
+       for (s_cur = ordered_sensors; *s_cur; s_cur++) {
                s = *s_cur;
                gtk_list_store_append(store, &iter);
 
@@ -477,7 +479,9 @@ void ui_sensorpref_dialog_run(struct psensor *sensor, struct ui_psensor *ui)
 
        selection = gtk_tree_view_get_selection(w_sensors_list);
        g_signal_connect(selection, "changed", G_CALLBACK(on_changed), &cbdata);
-       select_sensor(sensor, ui->sensors, w_sensors_list);
+       select_sensor(sensor, ordered_sensors, w_sensors_list);
+
+       free(ordered_sensors);
 
        diag = GTK_DIALOG(gtk_builder_get_object(builder, "dialog1"));
        result = gtk_dialog_run(diag);