dotnet / dotnet/wpf

Infinite layout loop in Ribbon

Open
#895 0 comments 1 reaction 0 assignees View on GitHub
Bug
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.