diff --git a/.github/actions/spell-check/expect.txt b/.github/actions/spell-check/expect.txt index 5ee8b605e0..2a5185c79b 100644 --- a/.github/actions/spell-check/expect.txt +++ b/.github/actions/spell-check/expect.txt @@ -16,6 +16,7 @@ adaptivecards ADDSTRING ADDUNDORECORD ADifferent +ADMINS adml admx advfirewall @@ -169,7 +170,11 @@ cim CImage cla CLASSDC +classguid +classmethod CLASSNOTAVAILABLE +claude +CLEARTYPE clickable clickonce clientside @@ -201,6 +206,7 @@ colorformat colorhistory colorhistorylimit COLORKEY +colorref comctl comdlg comexp @@ -218,6 +224,7 @@ CONTEXTHELP CONTEXTMENUHANDLER contractversion CONTROLPARENT +Convs cooldown copiedcolorrepresentation COPYPEN @@ -229,6 +236,8 @@ cpcontrols cph cplusplus CPower +cpptools +cppvsdbg cppwinrt createdump CREATEPROCESS @@ -251,6 +260,8 @@ CTLCOLORSTATIC CURRENTDIR CURSORINFO cursorpos +CURSORSHOWING +cursorwrap customaction CUSTOMACTIONTEST CVal @@ -267,12 +278,14 @@ dacl datareader datatracker Dayof +dbcc DBID DBLCLKS DBLEPSILON DBPROP DBPROPIDSET DBPROPSET +DBT DCBA DCOM DComposition @@ -288,6 +301,8 @@ DEFAULTFLAGS DEFAULTICON defaultlib DEFAULTONLY +DEFAULTSIZE +defaulttonearest DEFAULTTONULL DEFAULTTOPRIMARY DEFERERASE @@ -307,11 +322,21 @@ DESKTOPABSOLUTEPARSING desktopshorcutinstalled devblogs devdocs +devenv +DEVICEINTERFACE +devicetype +DEVINTERFACE devmgmt DEVMODE DEVMODEW +DEVNODES devpal +DEVTYP +dfx DIALOGEX +diffs +digicert +DINORMAL DISABLEASACTIONKEY DISABLENOSCROLL diskmgmt @@ -425,6 +450,12 @@ eyetracker FANCYZONESDRAWLAYOUTTEST FANCYZONESEDITOR FARPROC +fdw +fdx +FErase +fesf +FFFF +Figma FILEEXPLORER FILEFLAGS FILEFLAGSMASK @@ -441,6 +472,7 @@ FILESYSPATH Filetime FILEVERSION FILTERMODE +FInc findfast FIXEDFILEINFO FIXEDSYS @@ -526,11 +558,13 @@ HCRYPTPROV hcursor hcwhite hdc +HDEVNOTIFY hdr hdrop hdwwiz Helpline helptext +hgdiobj HGFE hglobal hhk @@ -675,6 +709,7 @@ jfif jgeosdfsdsgmkedfgdfgdfgbkmhcgcflmi jjw jobject +JOBOBJECT jpe jpnime Jsons @@ -709,6 +744,7 @@ Ldone Ldr LEFTSCROLLBAR LEFTTEXT +leftclick LError LEVELID LExit @@ -740,6 +776,8 @@ lowlevel LOWORD lparam LPBITMAPINFOHEADER +LPCFHOOKPROC +lpch LPCITEMIDLIST LPCLSID lpcmi @@ -757,6 +795,7 @@ LPMONITORINFO LPOSVERSIONINFOEXW LPQUERY lprc +LPrivate LPSAFEARRAY lpstr lpsz @@ -803,6 +842,8 @@ MAXSHORTCUTSIZE maxversiontested MBM MBR +Mbuttondown +mcp MDICHILD MDL mdtext @@ -814,7 +855,10 @@ MENUITEMINFO MENUITEMINFOW MERGECOPY MERGEPAINT +Metacharacter +metadatamatters Metadatas +Metacharacter metafile metapackage mfc @@ -841,6 +885,7 @@ mmsys mobileredirect mockapi MODALFRAME +modelcontextprotocol MODESPRUNED MONITORENUMPROC MONITORINFO @@ -875,7 +920,9 @@ MSLLHOOKSTRUCT Mso msrc msstore +mstsc msvcp +MT MTND mtrue MULTIPLEUSE @@ -885,6 +932,8 @@ mvvm MVVMTK MWBEx MYICON +myorg +myrepo NAMECHANGE namespaceanddescendants nao @@ -1009,6 +1058,7 @@ openas opencode OPENFILENAME opensource +openurl openxmlformats OPTIMIZEFORINVOKE ORPHANEDDIALOGTITLE @@ -1203,6 +1253,7 @@ RAWPATH rbhid rclsid RCZOOMIT +rdp RDW READMODE READOBJECTS @@ -1230,6 +1281,7 @@ remappings REMAPSUCCESSFUL REMAPUNSUCCESSFUL Remotable +remotedesktop remoteip Removelnk renamable @@ -1260,6 +1312,7 @@ RIGHTSCROLLBAR riid RKey RNumber +rollups rop ROUNDSMALL rpcrt @@ -1471,6 +1524,9 @@ SVGIO svgz SVSI SWFO +swp +SWPNOSIZE +SWPNOZORDER SWRESTORE symbolrequestprod SYMCACHE @@ -1487,6 +1543,8 @@ SYSKEY syskeydown SYSKEYUP SYSLIB +sysmenu +systemai SYSTEMAPPS SYSTEMMODAL SYSTEMTIME @@ -1573,6 +1631,9 @@ UHash UIA UIEx ULONGLONG +Ultrawide +UMax +UMin ums uncompilable UNCPRIORITY diff --git a/Directory.Packages.props b/Directory.Packages.props index 4c8d382c7b..6ce7261dfa 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -26,7 +26,7 @@ - + diff --git a/src/modules/MouseUtils/CursorWrap/MonitorTopology.cpp b/src/modules/MouseUtils/CursorWrap/MonitorTopology.cpp index 070e7a3521..0dc14d2168 100644 --- a/src/modules/MouseUtils/CursorWrap/MonitorTopology.cpp +++ b/src/modules/MouseUtils/CursorWrap/MonitorTopology.cpp @@ -14,7 +14,6 @@ void MonitorTopology::Initialize(const std::vector& monitors) Logger::info(L"======= TOPOLOGY INITIALIZATION START ======="); Logger::info(L"Initializing edge-based topology for {} monitors", monitors.size()); - m_monitors = monitors; m_outerEdges.clear(); m_edgeMap.clear(); @@ -692,7 +691,6 @@ int MonitorTopology::GetAbsolutePosition(const MonitorEdge& edge, double relativ return static_cast(result); } - std::vector MonitorTopology::DetectMonitorGaps() const { std::vector gaps; diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/AppListItem.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/AppListItem.cs index 426bfcccba..041138c5ce 100644 --- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/AppListItem.cs +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/AppListItem.cs @@ -19,7 +19,6 @@ public sealed partial class AppListItem : ListItem, IPrecomputedListItem { private readonly AppCommand _appCommand; private readonly AppItem _app; - private readonly Lazy> _iconLoadTask; private readonly Lazy> _detailsLoadTask; diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.PerformanceMonitor/OnLoadStaticPage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.PerformanceMonitor/OnLoadStaticPage.cs index 0c4242240e..55929c88cc 100644 --- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.PerformanceMonitor/OnLoadStaticPage.cs +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.PerformanceMonitor/OnLoadStaticPage.cs @@ -3,6 +3,7 @@ // See the LICENSE file in the project root for more information. using System; +using System.Threading; using Microsoft.CommandPalette.Extensions; using Microsoft.CommandPalette.Extensions.Toolkit; using Windows.Foundation; @@ -70,6 +71,7 @@ internal abstract partial class OnLoadContentPage : OnLoadBasePage, IContentPage internal abstract partial class OnLoadBasePage : Page { + private readonly Lock _loadLock = new(); private int _loadCount; #pragma warning disable CS0067 // The event is never used @@ -82,22 +84,28 @@ internal abstract partial class OnLoadBasePage : Page add { InternalItemsChanged += value; - if (_loadCount == 0) + lock (_loadLock) { - Loaded(); - } + if (_loadCount == 0) + { + Loaded(); + } - _loadCount++; + _loadCount++; + } } remove { InternalItemsChanged -= value; - _loadCount--; - _loadCount = Math.Max(0, _loadCount); - if (_loadCount == 0) + lock (_loadLock) { - Unloaded(); + _loadCount--; + _loadCount = Math.Max(0, _loadCount); + if (_loadCount == 0) + { + Unloaded(); + } } } } diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.PerformanceMonitor/PerformanceWidgetsPage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.PerformanceMonitor/PerformanceWidgetsPage.cs index e1250acc82..f82e45bc57 100644 --- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.PerformanceMonitor/PerformanceWidgetsPage.cs +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.PerformanceMonitor/PerformanceWidgetsPage.cs @@ -9,6 +9,7 @@ using System.Globalization; using System.IO; using System.Text; using System.Text.Json.Nodes; +using System.Threading; using CoreWidgetProvider.Helpers; using CoreWidgetProvider.Widgets.Enums; using Microsoft.CmdPal.Common; @@ -262,17 +263,17 @@ internal abstract partial class WidgetPage : OnLoadContentPage /// internal virtual void PushActivate() { - _loadCount++; + Interlocked.Increment(ref _loadCount); } internal virtual void PopActivate() { - _loadCount--; + Interlocked.Decrement(ref _loadCount); } private int _loadCount; - protected bool IsActive => _loadCount > 0; + protected bool IsActive => Volatile.Read(ref _loadCount) > 0; protected override void Loaded() {