Allow pinning processes
diff --git a/ui/src/core_plugins/dev.perfetto.Timeline/track_view.ts b/ui/src/core_plugins/dev.perfetto.Timeline/track_view.ts index 7c96c7a..3c1e7e9 100644 --- a/ui/src/core_plugins/dev.perfetto.Timeline/track_view.ts +++ b/ui/src/core_plugins/dev.perfetto.Timeline/track_view.ts
@@ -163,9 +163,7 @@ (removable || node.removable) && this.renderCloseButton(), this.renderTrackMenuButton(), // Always-visible buttons last (pin button is visible when pinned) - // We don't want summary tracks to be pinned as they rarely have - // useful information. - !node.isSummary && this.renderPinButton(), + this.renderPinButton(), // Area seletion (when in area selection mode is always visible so put // it at the end) this.renderAreaSelectionCheckbox(),
diff --git a/ui/src/public/workspace.ts b/ui/src/public/workspace.ts index be0f5a0..943d073 100644 --- a/ui/src/public/workspace.ts +++ b/ui/src/public/workspace.ts
@@ -607,14 +607,9 @@ * Adds a track node to this workspace's pinned area. */ pinTrack(track: TrackNode): void { - // Make a lightweight clone of this track - just the uri and the title. - const cloned = new TrackNode({ - uri: track.uri, - name: track.name, - subtitle: track.subtitle, - removable: track.removable, - chips: track.chips, - }); + const cloned = track.clone(true); + // Replace the name with the full path to help with lineage tracking. + cloned.name = track.fullPath.join(' > '); this.pinnedTracksNode.addChildLast(cloned); }