diff options
| -rw-r--r-- | internal/tui/dashboard/model.go | 18 | ||||
| -rw-r--r-- | 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) |
