diff --git a/src/g_hslider.c b/src/g_hslider.c index cf1c4339f3f1231d01482d3c810a37ea8dd66738..b6d9cf3f43de118cf15653b44848431e66cf372b 100644 --- a/src/g_hslider.c +++ b/src/g_hslider.c @@ -711,7 +711,11 @@ static void hslider_dialog(t_hslider *x, t_symbol *s, int argc, t_atom *argv) x->x_steady = 0; sr_flags = iemgui_dialog(&x->x_gui, srl, argc, argv); x->x_gui.x_h = iemgui_clip_size(h); + int old_width = x->x_gui.x_w; hslider_check_width(x, w); + if (x->x_gui.x_w != old_width) { + x->x_val = x->x_val * ((double)x->x_gui.x_w/(double)old_width); + } hslider_check_minmax(x, min, max); (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_CONFIG); (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_IO + sr_flags);