From ccd89cac3bfe1cf52d0910670699f995934e58df Mon Sep 17 00:00:00 2001 From: Infus Date: Sun, 31 May 2026 12:47:25 +0200 Subject: [PATCH 1/3] Fix lua error on creating a icon in a dynamic group WeakAuras.Add now calls TimeMachine:DestoryTheUniverse, which updates the options. This lead to the dynamic group options code expecting the child to exist already. Fixes: #6212 --- WeakAurasOptions/WeakAurasOptions.lua | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/WeakAurasOptions/WeakAurasOptions.lua b/WeakAurasOptions/WeakAurasOptions.lua index bc00db3f49..005a904fd2 100644 --- a/WeakAurasOptions/WeakAurasOptions.lua +++ b/WeakAurasOptions/WeakAurasOptions.lua @@ -1968,6 +1968,9 @@ function WeakAuras.NewAura(sourceData, regionType, targetId) return end + data.parent = group.data.id + WeakAuras.Add(data) + local children = group.data.controlledChildren; local index = target:GetGroupOrder(); if (ensure(children, index, target.data.id)) then @@ -1978,8 +1981,7 @@ function WeakAuras.NewAura(sourceData, regionType, targetId) -- move source into group as the first child tinsert(children, 1, data.id); end - data.parent = group.data.id; - WeakAuras.Add(data); + WeakAuras.Add(group.data); OptionsPrivate.Private.AddParents(group.data) WeakAuras.NewDisplayButton(data); From 76070cb1407c9f7a2f58085550e6e3c7b972f0fc Mon Sep 17 00:00:00 2001 From: Infus Date: Sun, 31 May 2026 13:33:22 +0200 Subject: [PATCH 2/3] Create a font string for each font on options first load Because Blizzard does lazy loading of fonts, without the important part. Fixes: #6213 --- WeakAurasOptions/RegionOptions/Text.lua | 2 ++ WeakAurasOptions/WeakAurasOptions.lua | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/WeakAurasOptions/RegionOptions/Text.lua b/WeakAurasOptions/RegionOptions/Text.lua index 5b236927b4..12679c1f06 100644 --- a/WeakAurasOptions/RegionOptions/Text.lua +++ b/WeakAurasOptions/RegionOptions/Text.lua @@ -16,6 +16,8 @@ end local dynamicTextInputs = {} + + local function createOptions(id, data) local function hideCustomTextOption() if OptionsPrivate.Private.ContainsCustomPlaceHolder(data.displayText) then diff --git a/WeakAurasOptions/WeakAurasOptions.lua b/WeakAurasOptions/WeakAurasOptions.lua index 005a904fd2..963b45085e 100644 --- a/WeakAurasOptions/WeakAurasOptions.lua +++ b/WeakAurasOptions/WeakAurasOptions.lua @@ -896,6 +896,12 @@ function WeakAuras.ShowOptions(msg) if firstLoad then frame:ShowTip() + for _, font in pairs(AceGUIWidgetLSMlists.font) do + local fs = frame:CreateFontString(nil, "OVERLAY", "GameFontWhite") + local _, size, outline= fs:GetFont() + fs:SetPoint("TOP", UIParent, "TOP") + fs:SetFont(font, size, outline) + end end end From 0d3c454be32583a68b5bb1d16d6795f3f98b4fc9 Mon Sep 17 00:00:00 2001 From: Infus Date: Sun, 31 May 2026 17:15:45 +0200 Subject: [PATCH 3/3] Custom Options: Fix regression in changing user settings on a group --- WeakAurasOptions/AuthorOptions.lua | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/WeakAurasOptions/AuthorOptions.lua b/WeakAurasOptions/AuthorOptions.lua index be851fb6f8..5f025c0176 100644 --- a/WeakAurasOptions/AuthorOptions.lua +++ b/WeakAurasOptions/AuthorOptions.lua @@ -555,7 +555,7 @@ local function setUser(data, option) OptionsPrivate.Private.TimeMachine:Append({ uid = childData.uid, actionType = "set", - path = expandUserPath(data, optionData.path), + path = expandUserPath(childData, optionData.path), payload = value }) end @@ -633,7 +633,7 @@ local function setUserNum(data, option) OptionsPrivate.Private.TimeMachine:Append({ uid = childData.uid, actionType = "set", - path = expandUserPath(data, optionData.path), + path = expandUserPath(childData, optionData.path), payload = num }) end @@ -672,7 +672,7 @@ local function setUserColor(data, option) OptionsPrivate.Private.TimeMachine:Append({ uid = childData.uid, actionType = "set", - path = expandUserPath(data, optionData.path), + path = expandUserPath(childData, optionData.path), payload = color }) end @@ -2656,7 +2656,7 @@ local function addUserModeOption(options, args, data, order, prefix, i) OptionsPrivate.Private.TimeMachine:Append({ uid = childData.uid, actionType = "set", - path = expandUserPath(data, optionData.path), + path = expandUserPath(childData, optionData.path), payload = {}, }) end @@ -2680,7 +2680,7 @@ local function addUserModeOption(options, args, data, order, prefix, i) local childConfigList = optionData.config[childOption.key] local childData = optionData.data if childOption.limitType == "none" or #childConfigList < childOption.size then - local expandedPath = expandUserPath(data, optionData.path) + local expandedPath = expandUserPath(childData, optionData.path) -- expandUserPath adds the page at the end, which we don't need here expandedPath[#expandedPath] = nil local insertPos = #childConfigList + 1 @@ -2731,7 +2731,7 @@ local function addUserModeOption(options, args, data, order, prefix, i) local childData = optionData.data local page = getPage(id, optionData.path) if #childConfigList ~= 0 then - local expandedPath = expandUserPath(data, optionData.path) + local expandedPath = expandUserPath(childData, optionData.path) -- expandUserPath adds the page at the end, which we don't need here expandedPath[#expandedPath] = nil OptionsPrivate.Private.TimeMachine:Append({ @@ -2768,7 +2768,7 @@ local function addUserModeOption(options, args, data, order, prefix, i) local childData = optionData.data local childPage = getPage(id, optionData.path, #childConfigList) if childConfigList[childPage] then - local expandedPath = expandUserPath(data, optionData.path) + local expandedPath = expandUserPath(childData, optionData.path) -- expandUserPath adds the page at the end, which we don't need here expandedPath[#expandedPath] = nil OptionsPrivate.Private.TimeMachine:Append({ @@ -2807,7 +2807,7 @@ local function addUserModeOption(options, args, data, order, prefix, i) local childData = optionData.data local childPage = getPage(id, optionData.path, #childConfigList) if childConfigList[childPage] then - local expandedPath = expandUserPath(data, optionData.path) + local expandedPath = expandUserPath(childData, optionData.path) -- expandUserPath adds the page at the end, which we don't need here expandedPath[#expandedPath] = nil OptionsPrivate.Private.TimeMachine:Append({