mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-02-24 04:00:02 +01:00
## Summary of the Pull Request This pull request introduces a minor but important update to the `ContentIcon` control in the `Microsoft.CmdPal.UI` module. The changes improve robustness by adding checks to prevent duplicate parenting of the `Content` element and include a debug assertion for better diagnostics during development. ## PR Checklist - [x] Closes: #40928 - [ ] **Communication:** not yet - [ ] **Tests:** nope - [ ] **Localization:** none - [ ] **Dev docs:** nay - [ ] **New binaries:** no nothing - [ ] **Documentation updated:** too lazy for that ## Detailed Description of the Pull Request / Additional comments ### Key changes: #### Diagnostics and robustness improvements: * Added a `Debug.Assert` statement to verify that the `Content` element is not already parented to another element, helping to catch potential issues during development. (`[src/modules/cmdpal/Microsoft.CmdPal.UI/Controls/ContentIcon.csR39-R49](diffhunk://#diff-330aad69f925cf7a9e07bb7147af8e6cd09776a4c745455ac8a91a24b482d076R39-R49)`) * Introduced checks to ensure the `Content` element is not added to the `Grid`'s `Children` collection if it already exists there, preventing redundant operations. (`[src/modules/cmdpal/Microsoft.CmdPal.UI/Controls/ContentIcon.csR39-R49](diffhunk://#diff-330aad69f925cf7a9e07bb7147af8e6cd09776a4c745455ac8a91a24b482d076R39-R49)`) #### Code maintenance: * Added a `using System.Diagnostics` directive to enable the use of the `Debug` class for assertions. (`[src/modules/cmdpal/Microsoft.CmdPal.UI/Controls/ContentIcon.csR5](diffhunk://#diff-330aad69f925cf7a9e07bb7147af8e6cd09776a4c745455ac8a91a24b482d076R5)`) ## Validation Steps Performed Turned extensions off and on and off and on and off and on and off and on and off and on and off and on and off and on and off and on and off and on and off and on and off and on and off and on and off and on and off and on and off and on. And then off and on again, just to be sure. --------- Co-authored-by: Mike Griese <migrie@microsoft.com>
PowerToys Source Code
Code organization
The PowerToys are split into DLLs for each PowerToy module (modules folder), and an executable (runner folder) that loads and manages those DLLs.
The settings window is a separate executable, contained in settings-ui folder. It utilizes a WebView to display an HTML-based settings window.
The common contains code for a static library with helper functions, used by both the runner and the PowerToys modules.