From 07dc1db3180d86b5b6fc61563c0a5004098e26cc Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 6 Mar 2026 08:22:17 +0200 Subject: Start flame ticks on dashboard entry and use purple selection --- internal/tui/dashboard/model.go | 18 +++++++++++++++++- internal/tui/flamegraph/renderer.go | 6 +++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/internal/tui/dashboard/model.go b/internal/tui/dashboard/model.go index 4cf7c15..ebd0c03 100644 --- a/internal/tui/dashboard/model.go +++ b/internal/tui/dashboard/model.go @@ -85,7 +85,17 @@ func NewModelWithConfig(engine SnapshotSource, streamSource *eventstream.RingBuf // Init starts periodic refresh ticks. func (m Model) Init() tea.Cmd { - return tickCmd(m.refreshEvery) + cmds := []tea.Cmd{tickCmd(m.refreshEvery)} + switch m.activeTab { + case TabStream: + cmds = append(cmds, streamTickCmd()) + case TabFlame: + cmds = append(cmds, flameTickCmd()) + } + if len(cmds) == 1 { + return cmds[0] + } + return tea.Batch(cmds...) } // Update handles ticks, snapshots, tab changes, and resize events. @@ -108,12 +118,18 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { func() tea.Msg { return messages.StatsTickMsg{Snap: snap} }, ) case streamTickMsg: + if !m.focused { + return m, nil + } if m.activeTab != TabStream { return m, nil } m.streamModel.Refresh() return m, streamTickCmd() case flameTickMsg: + if !m.focused { + return m, nil + } if m.activeTab != TabFlame { return m, nil } diff --git a/internal/tui/flamegraph/renderer.go b/internal/tui/flamegraph/renderer.go index 4f376a5..142f78c 100644 --- a/internal/tui/flamegraph/renderer.go +++ b/internal/tui/flamegraph/renderer.go @@ -319,10 +319,10 @@ func styleForFrame(idx int, frame tuiFrame, selectedPath string, subtreeSet, mat } if isSelected { - selectedBg := lipgloss.Color("226") - selectedFg := lipgloss.Color("16") + selectedBg := lipgloss.Color("99") + selectedFg := lipgloss.Color("15") if !isDark { - selectedBg = lipgloss.Color("160") + selectedBg = lipgloss.Color("93") selectedFg = lipgloss.Color("15") } return base.Background(selectedBg).Foreground(selectedFg).Bold(true).Underline(true) -- cgit v1.2.3