Skip to content

Commit 9178482

Browse files
author
Marcus Markiewicz
committed
fix: Escape ampersands in ToolStripMenuItem text to prevent mnemonic interpretation
Updated the text for next and second meeting display items to escape ampersands, ensuring they are displayed correctly without being interpreted as mnemonics.
1 parent 7b6cef0 commit 9178482

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/ComingUpNextTray/TrayContext.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -409,14 +409,17 @@ private void UpdateMenuState()
409409
string? fetchErr = this.app.GetLastFetchErrorForUi();
410410
if (!string.IsNullOrEmpty(fetchErr))
411411
{
412-
this.nextMeetingDisplayItem.Text = UiText.FetchErrorPrefix + fetchErr;
412+
// Escape ampersands so ToolStripMenuItem does not interpret them as mnemonics
413+
this.nextMeetingDisplayItem.Text = (UiText.FetchErrorPrefix + fetchErr).Replace("&", "&&", System.StringComparison.Ordinal);
413414
}
414415
else
415416
{
416-
this.nextMeetingDisplayItem.Text = next is null ? UiText.NoUpcomingMeetings : NextMeetingSelector.FormatTooltip(next, DateTime.Now);
417+
string nextText = next is null ? UiText.NoUpcomingMeetings : NextMeetingSelector.FormatTooltip(next, DateTime.Now);
418+
this.nextMeetingDisplayItem.Text = nextText.Replace("&", "&&", System.StringComparison.Ordinal);
417419
}
418420

419-
this.secondMeetingDisplayItem.Text = second is null ? string.Empty : NextMeetingSelector.FormatTooltip(second, DateTime.Now);
421+
string secondText = second is null ? string.Empty : NextMeetingSelector.FormatTooltip(second, DateTime.Now);
422+
this.secondMeetingDisplayItem.Text = secondText.Replace("&", "&&", System.StringComparison.Ordinal);
420423
this.secondMeetingDisplayItem.Visible = second is not null;
421424

422425
// Update last updated timestamp line

0 commit comments

Comments
 (0)