aboutsummaryrefslogtreecommitdiffstats
path: root/src/jalv_gtk.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2013-05-26 19:20:56 +0000
committerDavid Robillard <d@drobilla.net>2013-05-26 19:20:56 +0000
commit3f2b8f817b22c36317b4b24ad98f6f142b220f81 (patch)
tree10b7ce41048221d086fd4e10496a2fea861f3822 /src/jalv_gtk.c
parent30868b717fcc5a9e337270a056f13f43d9b2a0cd (diff)
downloadjalv-3f2b8f817b22c36317b4b24ad98f6f142b220f81.tar.gz
jalv-3f2b8f817b22c36317b4b24ad98f6f142b220f81.tar.bz2
jalv-3f2b8f817b22c36317b4b24ad98f6f142b220f81.zip
Fix default setting for non-sequential enumeration ports
(patch from Robin Gareus). git-svn-id: http://svn.drobilla.net/lad/trunk/jalv@5109 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/jalv_gtk.c')
-rw-r--r--src/jalv_gtk.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/jalv_gtk.c b/src/jalv_gtk.c
index 45d1080..00cbf27 100644
--- a/src/jalv_gtk.c
+++ b/src/jalv_gtk.c
@@ -420,18 +420,22 @@ make_combo(struct Port* port, GHashTable* points)
GList* list = g_hash_table_get_keys(points);
GtkListStore* list_store = gtk_list_store_new(
2, G_TYPE_DOUBLE, G_TYPE_STRING);
- for (GList* cur = g_list_sort(list, dcmp); cur; cur = cur->next) {
+ gint active = -1, count = 0;
+ for (GList* cur = g_list_sort(list, dcmp); cur; cur = cur->next, ++count) {
GtkTreeIter iter;
gtk_list_store_append(list_store, &iter);
gtk_list_store_set(list_store, &iter,
0, *(double*)cur->data,
1, g_hash_table_lookup(points, cur->data),
-1);
+ if (fabs(port->control - *(double*)cur->data) < FLT_EPSILON) {
+ active = count;
+ }
}
g_list_free(list);
GtkWidget* combo = gtk_combo_box_new_with_model(GTK_TREE_MODEL(list_store));
- gtk_combo_box_set_active(GTK_COMBO_BOX(combo), lrintf(port->control));
+ gtk_combo_box_set_active(GTK_COMBO_BOX(combo), active);
g_object_unref(list_store);
GtkCellRenderer* cell = gtk_cell_renderer_text_new();