promenu: only run onchange/draw if value changes

pull/3458/head
Rob Pilling 2024-06-16 17:51:32 +01:00
parent d9bc0aaffa
commit 1fa407b305
1 changed files with 7 additions and 3 deletions

View File

@ -136,6 +136,8 @@ E.showMenu = (items?: Menu): MenuInstance => {
const item = selectEdit; const item = selectEdit;
if (typeof item === "object" && typeof item.value === "number") { if (typeof item === "object" && typeof item.value === "number") {
const orig = item.value;
item.value += (-dir||1) * (item.step||1); item.value += (-dir||1) * (item.step||1);
if (item.min && item.value < item.min) if (item.min && item.value < item.min)
@ -144,10 +146,12 @@ E.showMenu = (items?: Menu): MenuInstance => {
if ("max" in item && item.value > item.max) if ("max" in item && item.value > item.max)
item.value = item.wrap ? item.min as number : item.max; item.value = item.wrap ? item.min as number : item.max;
if (item.value !== orig) {
if (item.onchange) if (item.onchange)
item.onchange(item.value); item.onchange(item.value);
l.draw(selected, selected); l.draw(selected, selected);
}
} else { } else {
const lastSelected = selected; const lastSelected = selected;