Skip to content

Fix #916 — Memory tab tooltip stops working after returning to tab#919

Merged
erikdarlingdata merged 1 commit intodevfrom
feature/916-memory-tab-tooltip
May 2, 2026
Merged

Fix #916 — Memory tab tooltip stops working after returning to tab#919
erikdarlingdata merged 1 commit intodevfrom
feature/916-memory-tab-tooltip

Conversation

@erikdarlingdata
Copy link
Copy Markdown
Owner

Summary

  • WPF Popup (used by ChartHoverHelper) can wedge when the user navigates away from a TabItem mid-hover: TabControl unloads the parent without firing MouseLeave, so IsOpen stays true with a stale placement anchor. On return, OnMouseMove sets IsOpen = true again, but since it is already true the assignment is a no-op and the popup never re-anchors or appears.
  • Memory tab is the most visible victim because it hosts 6 charts inside a nested TabControl, but the underlying bug is in the shared helper.
  • Force-close the popup on chart Loaded / Unloaded / IsVisibleChanged, and toggle IsOpen off→on inside OnMouseMove so WPF re-evaluates placement even when the popup believes it is already open.

Fixes #916

Test plan

  • Open Dashboard → Overview → Resource Overview → confirm tooltip appears
  • Switch to Memory → Memory Overview → confirm tooltip appears
  • Switch back to Overview → Resource Overview → tooltip still works
  • Switch back to Memory → Memory Overview → tooltip works (regression scenario from issue)
  • Repeat across all Memory sub-tabs (Memory Grants, Memory Clerks, Plan Cache, Memory Pressure Events)
  • Sanity-check tooltips still behave on other tabs that use ChartHoverHelper (Resource Metrics, System Events, Queries history windows)

🤖 Generated with Claude Code

WPF Popup with PlacementTarget = chart can wedge when the user navigates
away from a TabItem mid-hover: TabControl unloads the parent without firing
MouseLeave on the chart, so _popup.IsOpen stays true with a stale anchor.
On return, OnMouseMove sets IsOpen = true but it is already true — the
assignment is a no-op and the popup never re-anchors or appears.

Memory tab is the most visible victim because it has 6 charts inside a
nested TabControl, multiplying the chance of a wedged popup, but the bug
is general to ChartHoverHelper.

- Force _popup.IsOpen = false on chart Loaded / Unloaded / IsVisibleChanged.
- In OnMouseMove, toggle IsOpen off then on so WPF re-evaluates placement
  even when the popup believes it is already open.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@erikdarlingdata erikdarlingdata merged commit 4e58e8a into dev May 2, 2026
2 checks passed
@erikdarlingdata erikdarlingdata deleted the feature/916-memory-tab-tooltip branch May 2, 2026 14:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant