perf(tracker/gioui): avoid heap escapes in the menubar

This commit is contained in:
5684185+vsariola@users.noreply.github.com
2025-05-27 17:18:29 +03:00
parent d20a23d57b
commit 4f779edb88

View File

@ -337,20 +337,15 @@ func (t *MenuBar) Layout(gtx C, tr *Tracker) D {
if t.PanicBtn.Bool.Value() { if t.PanicBtn.Bool.Value() {
panicBtnStyle.IconButtonStyle.Color = tr.Theme.SongPanel.ErrorColor panicBtnStyle.IconButtonStyle.Color = tr.Theme.SongPanel.ErrorColor
} }
menuLayouts := []layout.FlexChild{ flex := layout.Flex{Axis: layout.Horizontal, Alignment: layout.End}
layout.Rigid(tr.layoutMenu(gtx, "File", &t.Clickables[0], &t.Menus[0], unit.Dp(200), t.fileMenuItems...)), fileFC := layout.Rigid(tr.layoutMenu(gtx, "File", &t.Clickables[0], &t.Menus[0], unit.Dp(200), t.fileMenuItems...))
layout.Rigid(tr.layoutMenu(gtx, "Edit", &t.Clickables[1], &t.Menus[1], unit.Dp(200), t.editMenuItems...)), editFC := layout.Rigid(tr.layoutMenu(gtx, "Edit", &t.Clickables[1], &t.Menus[1], unit.Dp(200), t.editMenuItems...))
} midiFC := layout.Rigid(tr.layoutMenu(gtx, "MIDI", &t.Clickables[2], &t.Menus[2], unit.Dp(200), t.midiMenuItems...))
panicFC := layout.Flexed(1, func(gtx C) D { return layout.E.Layout(gtx, panicBtnStyle.Layout) })
if len(t.midiMenuItems) > 0 { if len(t.midiMenuItems) > 0 {
menuLayouts = append( return flex.Layout(gtx, fileFC, editFC, midiFC, panicFC)
menuLayouts,
layout.Rigid(tr.layoutMenu(gtx, "MIDI", &t.Clickables[2], &t.Menus[2], unit.Dp(200), t.midiMenuItems...)),
)
} }
menuLayouts = append(menuLayouts, layout.Flexed(1, func(gtx C) D { return flex.Layout(gtx, fileFC, editFC, panicFC)
return layout.E.Layout(gtx, panicBtnStyle.Layout)
}))
return layout.Flex{Axis: layout.Horizontal, Alignment: layout.End}.Layout(gtx, menuLayouts...)
} }
type PlayBar struct { type PlayBar struct {