Skip to content

Commit 055ac87

Browse files
authored
Fix modern settings on Win11 24H2+ (#2091)
1 parent d82fadb commit 055ac87

File tree

1 file changed

+19
-4
lines changed

1 file changed

+19
-4
lines changed

Src/StartMenu/StartMenuHelper/ModernSettings.cpp

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -274,15 +274,30 @@ static void ParseApplicationInformation(CComPtr<IXMLDOMNode>& parent, AttributeW
274274
}
275275
}
276276

277+
static void ParseSettingIDs(CComPtr<IXMLDOMNode>& node, AttributeWriter& writer)
278+
{
279+
writer.addString(Id::PageId, GetTranslatedString(node, L"PageID"));
280+
writer.addString(Id::HostId, GetTranslatedString(node, L"HostID"));
281+
writer.addString(Id::GroupId, GetTranslatedString(node, L"GroupID"));
282+
writer.addString(Id::SettingId, GetTranslatedString(node, L"SettingID"));
283+
}
284+
285+
static void ParseSettingPaths(CComPtr<IXMLDOMNode>& parent, AttributeWriter& writer)
286+
{
287+
CComPtr<IXMLDOMNode> node;
288+
if (parent->selectSingleNode(CComBSTR(L"SettingPaths/Path"), &node) == S_OK)
289+
ParseSettingIDs(node, writer);
290+
}
291+
277292
static void ParseSettingIdentity(CComPtr<IXMLDOMNode>& parent, AttributeWriter& writer)
278293
{
279294
CComPtr<IXMLDOMNode> node;
280295
if (parent->selectSingleNode(CComBSTR(L"SettingIdentity"), &node) == S_OK)
281296
{
282-
writer.addString(Id::PageId, GetTranslatedString(node, L"PageID"));
283-
writer.addString(Id::HostId, GetTranslatedString(node, L"HostID"));
284-
writer.addString(Id::GroupId, GetTranslatedString(node, L"GroupID"));
285-
writer.addString(Id::SettingId, GetTranslatedString(node, L"SettingID"));
297+
// Win11 24H2+
298+
ParseSettingPaths(node, writer);
299+
// older
300+
ParseSettingIDs(node, writer);
286301
}
287302
}
288303

0 commit comments

Comments
 (0)