From 1164845b3c15f7cba49a80bd29cc450c1eb53eac Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Tue, 16 Jan 2024 07:22:59 +1030 Subject: [PATCH] Allow for continuous dials Update gtk_dial_new_with_range() to set round_digits to -1 if step is zero. Update create_levels_controls() to set step to zero. --- src/gtkdial.c | 5 +++-- src/window-levels.c | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gtkdial.c b/src/gtkdial.c index 4380d4d..f9c66a2 100644 --- a/src/gtkdial.c +++ b/src/gtkdial.c @@ -482,11 +482,12 @@ GtkWidget *gtk_dial_new_with_range(double min, double max, double step) { int digits; g_return_val_if_fail(min < max, NULL); - g_return_val_if_fail(step != 0.0, NULL); adj = gtk_adjustment_new(min, min, max, step, 10 * step, 0); - if (fabs(step) >= 1.0 || step == 0.0) { + if (step == 0.0) { + digits = -1; + } else if (fabs(step) >= 1.0) { digits = 0; } else { digits = abs((int)floor(log10(fabs(step)))); diff --git a/src/window-levels.c b/src/window-levels.c index 90ceaf0..2c277cc 100644 --- a/src/window-levels.c +++ b/src/window-levels.c @@ -95,7 +95,7 @@ GtkWidget *create_levels_controls(struct alsa_card *card) { count_labels[j] = add_count_label(grid, j); // create the meter widget and attach to the grid - GtkWidget *meter = gtk_dial_new_with_range(-80, 0, 1); + GtkWidget *meter = gtk_dial_new_with_range(-80, 0, 0); gtk_widget_set_sensitive(meter, FALSE); card->meters[meter_num++] = meter; gtk_grid_attach(GTK_GRID(grid), meter, j + 1, i + 1, 1, 1);