Refactor IconPathConverter::IconWUX() to not set icon size #24018

Open
opened 2026-01-31 08:59:09 +00:00 by claunia · 3 comments
Owner

Originally created by @carlos-zamora on GitHub (Jan 28, 2026).

I hit this problem pretty regularly whenever I'm working with icons (especially in the settings UI).

IconPathConverter::IconWUX() is a really powerful function that we use throughout the codebase to convert an icon path/code into an actual icon UI. However, we explicitly set the size of the icon on the way out. This was great when it was introduced because it meant that the icons in the dropdown, tabs, etc. all had the correct size. But as the project has grown to use those icons elsewhere (namely in the Settings UI), this has become a huge pain. Icons aren't always drawn to be the same size, especially if they're coming from different sources (i.e. hardcoded font icon vs evaluated icon in profile).

I'd update it whenever I hit the problem, but it's realistically a fundamental enough change that it will have side effects. I'd rather have it be its own change and audit the app to make sure it doesn't break anything.

References

Originally created by @carlos-zamora on GitHub (Jan 28, 2026). I hit this problem pretty regularly whenever I'm working with icons (especially in the settings UI). `IconPathConverter::IconWUX()` is a _really_ powerful function that we use throughout the codebase to convert an icon path/code into an actual icon UI. However, we explicitly set the size of the icon on the way out. This was great when it was introduced because it meant that the icons in the dropdown, tabs, etc. all had the correct size. But as the project has grown to use those icons elsewhere (namely in the Settings UI), this has become a huge pain. Icons aren't always drawn to be the same size, especially if they're coming from different sources (i.e. hardcoded font icon vs evaluated icon in profile). I'd update it whenever I hit the problem, but it's realistically a fundamental enough change that it _will_ have side effects. I'd rather have it be its own change and audit the app to make sure it doesn't break anything. ## References - https://github.com/microsoft/terminal/blob/3ec372c176ff0dca6f708dccd869e8b5ada87f7b/src/cascadia/UIHelpers/IconPathConverter.cpp#L318 - https://github.com/microsoft/terminal/tree/main/src/cascadia/TerminalSettingsEditor
claunia added the Help WantedIssue-TaskProduct-TerminalArea-CodeHealth labels 2026-01-31 08:59:10 +00:00
Author
Owner

@dtee1 commented on GitHub (Jan 30, 2026):

Interested. Can you assign to me?

@dtee1 commented on GitHub (Jan 30, 2026): Interested. Can you assign to me?
Author
Owner

@DHowett commented on GitHub (Jan 30, 2026):

@dtee1 we do not typically assign open issues to contributors, especially those who are new to the project. It makes it easier on us in the future as we don't need to clean up stale assignments down the road. 🙃

@DHowett commented on GitHub (Jan 30, 2026): @dtee1 we do not typically assign open issues to contributors, especially those who are new to the project. It makes it easier on us in the future as we don't need to clean up stale assignments down the road. 🙃
Author
Owner

@dtee1 commented on GitHub (Jan 30, 2026):

@DHowett Sounds good. So how can I contribute?

@dtee1 commented on GitHub (Jan 30, 2026): @DHowett Sounds good. So how can I contribute?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#24018