diff --git a/flamechart-view.tsx b/flamechart-view.tsx index 636783c..57674ea 100644 --- a/flamechart-view.tsx +++ b/flamechart-view.tsx @@ -491,17 +491,36 @@ export class FlamechartPanZoomView extends ReloadableComponent { + const width = frame.end - frame.start + const configSpaceBounds = new Rect( + new Vec2(frame.start, depth + 1), + new Vec2(width, 1) + ) + if (configSpaceMouse.x < configSpaceBounds.left()) return null + if (configSpaceMouse.x > configSpaceBounds.right()) return null + + if (configSpaceBounds.contains(configSpaceMouse)) { + this.hoveredLabel = { + configSpaceBounds, + node: frame.node + } + } + + for (let child of frame.children) { + setHoveredLabel(child, depth + 1) } } - this.props.setNodeHover(this.hoveredLabel ? this.hoveredLabel.node : null, logicalViewSpaceMouse) - */ + for (let frame of (this.props.flamechart.getLayers()[0] || [])) { + setHoveredLabel(frame) + } + + if (this.hoveredLabel) { + this.props.setNodeHover(this.hoveredLabel!.node, logicalViewSpaceMouse) + } else { + this.props.setNodeHover(null, logicalViewSpaceMouse) + } this.renderCanvas() } @@ -669,6 +688,7 @@ export class FlamechartView extends ReloadableComponent 99) formattedPercent = '>99%' + else if (percent < 0.01) formattedPercent = '<0.01%' else if (percent < 1) formattedPercent = `${percent.toFixed(2)}%` else if (percent < 10) formattedPercent = `${percent.toFixed(1)}%`