Skip to content

Fix DarkMode (a) StatusStrip background renderer A11Y Regression. #13360

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 12 commits into
base: main
Choose a base branch
from
Open
13 changes: 0 additions & 13 deletions src/System.Windows.Forms/PublicAPI.Shipped.txt
Original file line number Diff line number Diff line change
@@ -1,23 +1,10 @@
#nullable enable
[WFO5001]static System.Windows.Forms.Application.SetColorMode(System.Windows.Forms.SystemColorMode systemColorMode) -> void
[WFO5001]System.Windows.Forms.ControlStyles.ApplyThemingImplicitly = 524288 -> System.Windows.Forms.ControlStyles
[WFO5001]System.Windows.Forms.Form.FormBorderColorChanged -> System.EventHandler?
[WFO5001]System.Windows.Forms.Form.FormCaptionBackColorChanged -> System.EventHandler?
[WFO5001]System.Windows.Forms.Form.FormCaptionTextColorChanged -> System.EventHandler?
[WFO5001]System.Windows.Forms.Form.FormCornerPreferenceChanged -> System.EventHandler?
[WFO5001]System.Windows.Forms.FormCornerPreference
[WFO5001]System.Windows.Forms.FormCornerPreference.Default = 0 -> System.Windows.Forms.FormCornerPreference
[WFO5001]System.Windows.Forms.FormCornerPreference.DoNotRound = 1 -> System.Windows.Forms.FormCornerPreference
[WFO5001]System.Windows.Forms.FormCornerPreference.Round = 2 -> System.Windows.Forms.FormCornerPreference
[WFO5001]System.Windows.Forms.FormCornerPreference.RoundSmall = 3 -> System.Windows.Forms.FormCornerPreference
[WFO5001]System.Windows.Forms.SystemColorMode
[WFO5001]System.Windows.Forms.SystemColorMode.Classic = 0 -> System.Windows.Forms.SystemColorMode
[WFO5001]System.Windows.Forms.SystemColorMode.Dark = 2 -> System.Windows.Forms.SystemColorMode
[WFO5001]System.Windows.Forms.SystemColorMode.System = 1 -> System.Windows.Forms.SystemColorMode
[WFO5001]virtual System.Windows.Forms.Form.OnFormBorderColorChanged(System.EventArgs! e) -> void
[WFO5001]virtual System.Windows.Forms.Form.OnFormCaptionBackColorChanged(System.EventArgs! e) -> void
[WFO5001]virtual System.Windows.Forms.Form.OnFormCaptionTextColorChanged(System.EventArgs! e) -> void
[WFO5001]virtual System.Windows.Forms.Form.OnFormCornerPreferenceChanged(System.EventArgs! e) -> void
[WFO5002]static System.Windows.Forms.TaskDialog.ShowDialogAsync(nint hwndOwner, System.Windows.Forms.TaskDialogPage! page, System.Windows.Forms.TaskDialogStartupLocation startupLocation = System.Windows.Forms.TaskDialogStartupLocation.CenterOwner) -> System.Threading.Tasks.Task<System.Windows.Forms.TaskDialogButton!>!
[WFO5002]static System.Windows.Forms.TaskDialog.ShowDialogAsync(System.Windows.Forms.IWin32Window! owner, System.Windows.Forms.TaskDialogPage! page, System.Windows.Forms.TaskDialogStartupLocation startupLocation = System.Windows.Forms.TaskDialogStartupLocation.CenterOwner) -> System.Threading.Tasks.Task<System.Windows.Forms.TaskDialogButton!>!
[WFO5002]static System.Windows.Forms.TaskDialog.ShowDialogAsync(System.Windows.Forms.TaskDialogPage! page, System.Windows.Forms.TaskDialogStartupLocation startupLocation = System.Windows.Forms.TaskDialogStartupLocation.CenterScreen) -> System.Threading.Tasks.Task<System.Windows.Forms.TaskDialogButton!>!
Expand Down
13 changes: 13 additions & 0 deletions src/System.Windows.Forms/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
System.Windows.Forms.FormCornerPreference
System.Windows.Forms.FormCornerPreference.Default = 0 -> System.Windows.Forms.FormCornerPreference
System.Windows.Forms.FormCornerPreference.DoNotRound = 1 -> System.Windows.Forms.FormCornerPreference
System.Windows.Forms.FormCornerPreference.Round = 2 -> System.Windows.Forms.FormCornerPreference
System.Windows.Forms.FormCornerPreference.RoundSmall = 3 -> System.Windows.Forms.FormCornerPreference
virtual System.Windows.Forms.Form.OnFormBorderColorChanged(System.EventArgs! e) -> void
virtual System.Windows.Forms.Form.OnFormCaptionBackColorChanged(System.EventArgs! e) -> void
virtual System.Windows.Forms.Form.OnFormCaptionTextColorChanged(System.EventArgs! e) -> void
virtual System.Windows.Forms.Form.OnFormCornerPreferenceChanged(System.EventArgs! e) -> void
[WFO5001]System.Windows.Forms.Form.FormBorderColorChanged -> System.EventHandler?
[WFO5001]System.Windows.Forms.Form.FormCaptionBackColorChanged -> System.EventHandler?
[WFO5001]System.Windows.Forms.Form.FormCaptionTextColorChanged -> System.EventHandler?
[WFO5001]System.Windows.Forms.Form.FormCornerPreferenceChanged -> System.EventHandler?
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ public override DockStyle Dock
set => base.LayoutStyle = value;
}

// we do some custom stuff with padding to accomodate size grip.
// we do some custom stuff with padding to accommodate size grip.
// changing this is not supported at DT
[Browsable(false)]
public new Padding Padding
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1549,7 +1549,7 @@ public ToolStripRenderMode RenderMode
return ToolStripRenderMode.ManagerRenderMode;
}

if (_renderer is not null && !_renderer.IsAutoGenerated)
if (_renderer is not null && !_renderer.IsSystemDefaultAlternative)
{
return ToolStripRenderMode.Custom;
}
Expand Down Expand Up @@ -3250,7 +3250,7 @@ protected override void OnLayout(LayoutEventArgs e)
{
LayoutRequired = false;

// we need to do this to prevent autosizing to happen while we're reparenting.
// we need to do this to prevent auto-sizing to happen while we're reparenting.
ToolStripOverflow? overflow = GetOverflow();
if (overflow is not null)
{
Expand Down Expand Up @@ -3636,6 +3636,7 @@ protected override void OnPaintBackground(PaintEventArgs e)

Graphics g = e.GraphicsInternal;
GraphicsState graphicsState = g.Save();

try
{
using (Region? transparentRegion = Renderer.GetTransparentRegion(this))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -489,7 +489,7 @@ public static ToolStripManagerRenderMode RenderMode
{
Type currentType = CurrentRendererType;

if (t_defaultRenderer is not null && !t_defaultRenderer.IsAutoGenerated)
if (t_defaultRenderer is not null && !t_defaultRenderer.IsSystemDefaultAlternative)
{
return ToolStripManagerRenderMode.Custom;
}
Expand Down Expand Up @@ -546,24 +546,12 @@ public static bool VisualStylesEnabled

internal static ToolStripRenderer CreateRenderer(ToolStripManagerRenderMode renderMode)
{
switch (renderMode)
return renderMode switch
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: you can turn this into => now.

{
case ToolStripManagerRenderMode.System:
return new ToolStripSystemRenderer(isDefault: true);
case ToolStripManagerRenderMode.Professional:
#pragma warning disable WFO5001 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed.
if (Application.IsDarkModeEnabled)
{
return new ToolStripProfessionalRenderer(new DarkProfessionalColors());
}
#pragma warning restore WFO5001

return new ToolStripProfessionalRenderer(isDefault: true);

case ToolStripManagerRenderMode.Custom:
default:
return new ToolStripSystemRenderer(isDefault: true);
}
ToolStripManagerRenderMode.System => new ToolStripSystemRenderer(isDefault: true),
ToolStripManagerRenderMode.Professional => new ToolStripProfessionalRenderer(isDefault: true),
_ => new ToolStripSystemRenderer(isDefault: true),
};
}

internal static ToolStripRenderer CreateRenderer(ToolStripRenderMode renderMode)
Expand Down
Loading