Skip to content

Fix ComboBox focus steal in plan viewer + DOP 2 skew threshold#508

Merged
erikdarlingdata merged 1 commit intodevfrom
fix/issue-507-combobox-focus-and-skew
Mar 10, 2026
Merged

Fix ComboBox focus steal in plan viewer + DOP 2 skew threshold#508
erikdarlingdata merged 1 commit intodevfrom
fix/issue-507-combobox-focus-and-skew

Conversation

@erikdarlingdata
Copy link
Copy Markdown
Owner

Summary

ComboBox statement selector (fixes #507):

  • PreviewMouseDown was calling Focus() which stole focus from ComboBox dropdown items, preventing statement selection in multi-statement plans
  • Dropdown items live in a separate Popup visual tree, so FindVisualParent<ComboBox> couldn't walk back to the parent
  • Added ComboBoxItem and FindVisualParent<ComboBoxItem> checks to both Dashboard and Lite
  • Also added missing FindVisualParent<DataGrid> guard to Lite (Dashboard already had it)

Parallel skew Rule 8 (synced from PerformanceStudio #73):

  • Filter out thread 0 (coordinator) from skew calculation — it inflates thread count
  • Raise DOP 2 threshold from 75% to 80% — a 53/47 split with 2 workers is normal

Test plan

  • Load multi-statement plan in Lite → click different statements in ComboBox dropdown
  • Load multi-statement plan in Dashboard → same test
  • Verify DOP 2 plan with mild skew (53/47) no longer fires Parallel Skew warning
  • Verify DOP 4+ plan with genuine skew still fires

🤖 Generated with Claude Code

ComboBox statement selector (#507):
- PreviewMouseDown was stealing focus from ComboBox dropdown items,
  preventing statement selection in multi-statement plans
- Dropdown items live in a separate Popup visual tree, so the existing
  FindVisualParent<ComboBox> guard couldn't find the parent
- Added ComboBoxItem checks to both Dashboard and Lite
- Also added missing DataGrid guard to Lite (Dashboard already had it)

Parallel skew rule (#73, synced from PerformanceStudio):
- Filter out thread 0 (coordinator) from skew calculation
- Raise DOP 2 threshold from 75% to 80%

Fixes #507.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@erikdarlingdata erikdarlingdata merged commit f024136 into dev Mar 10, 2026
@erikdarlingdata erikdarlingdata deleted the fix/issue-507-combobox-focus-and-skew branch March 10, 2026 11:56
erikdarlingdata added a commit that referenced this pull request Mar 10, 2026
- Port MethodProfiler and QueryLogger from Dashboard to Lite for
  identifying slow methods and DuckDB queries (500ms threshold,
  daily rotating logs with 7-day cleanup)
- Add 5-minute server inventory cache to both Dashboard and Lite
  to eliminate 12s repeat loads on FinOps tab revisits
- Parallelize LoadPerServerDataAsync (4 sub-loads) and
  LoadUtilizationAsync (4 inner queries) with Task.WhenAll
  in both Dashboard and Lite
- Add query timing instrumentation to 7 LocalDataService methods
- Fix Plan Viewer PreviewMouseDown stealing focus from ComboBox
  and DataGrid in Dashboard (complements Lite fix from #508)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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