Forge
csharpdeeb25a2
1#nullable enable
2using CascadeIDE.Contracts;
3
4namespace CascadeIDE.Features.WorkspaceNavigation.Application;
5
6/// <summary>Пороги ширины области мини-карты на PFD (колбэк ширины viewport).</summary>
7[ComputingUnit("policy-code-nav-viewport")]
8public static class CodeNavigationMapViewportPolicy
9{
10 public const double IgnoreBelowWidth = 40;
11 public const double MinClampedWidth = 80;
12 public const double MaxClampedWidth = 2400;
13 public const double ChangeEpsilon = 3;
14
15 /// <summary>Вернуть <c>false</c>, если сообщение viewport игнорируем или ширина фактически не меняется.</summary>
16 public static bool ShouldApplyMeasuredWidth(double measuredWidth, double currentWidth, out double clampedWidth)
17 {
18 clampedWidth = default;
19 if (double.IsNaN(measuredWidth) || measuredWidth < IgnoreBelowWidth)
20 return false;
21
22 clampedWidth = Math.Clamp(measuredWidth, MinClampedWidth, MaxClampedWidth);
23 if (Math.Abs(clampedWidth - currentWidth) < ChangeEpsilon)
24 return false;
25
26 return true;
27 }
28}
29
View only · write via MCP/CIDE