Infinite layout loop in Ribbon
- Dominant language
- C#
- Stars
- 7.7k
- Forks
- 1.3k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 61
Description
Copied from VSO id: 911998
Found from automated test case (Case190401)
There's a bug in Ribbon where the RibbonContextualTabGroupsPanel repeatedly invalidates the RibbonTabHeadersPanel, which in turn invalidates the original RCTGP, without changing any sizes. This leads to a soft layout loop. It only happens with certain sizes (which have only appeared on RS3+ machines, perhaps due to theme differences and/or mouse-move coalescing).
This breaks the test case, which waits for DispatcherPriority.ApplicationIdle. The soft loop repeatedly posts higher-priority tasks, attempting to finish a layout pass, so the test case eventually times out.
This can happen to users, if they resize the ribbon in just the wrong way. The symptom would be high CPU usage. However the app is still responsive, and the user can resize the window to a less unfortunate size, and the CPU will return to 0.
Contributor guide
Assessment
This issue has not been assessed yet.