Yep, we have 2 different approaches: Yours is to distribute evenly, which makes for elegant code and nice mathematics. Mine is to change one value and then take care of the out of range issues afterwards. I also made sure that values get changed in steps of 5%, and this has the consequence that at most 2 values change at the same time, and I arranged it from bottom to top. I think that's just easier to control for the user. IMO it can get very fiddly if everything keeps changing at once and you want to set something specific.
Yep, we have 2 different approaches: Yours is to distribute evenly, which makes for elegant code and nice mathematics. Mine is to change one value and then take care of the out of range issues afterwards. I also made sure that values get changed in steps of 5%, and this has the consequence that at most 2 values change at the same time, and I arranged it from bottom to top. I think that's just easier to control for the user. IMO it can get very fiddly if everything keeps changing at once and you want to set something specific.