diff --git a/UI/BagFrame.lua b/UI/BagFrame.lua
index 6842fcf..53ae001 100644
--- a/UI/BagFrame.lua
+++ b/UI/BagFrame.lua
@@ -3417,18 +3417,31 @@ function BagFrame:Initialize()
ScheduleBagFrameUpdate(0.15)
end, "BagFrame")
- -- Auto-open bag frame when mail is opened
- addon.Modules.Events:Register("MAIL_SHOW", function()
- Guda_BagFrame:Show()
- end, "BagFrame")
+ -- Auto-open bag frame when interacting with mail, bank, auction, trade
+ local function AutoOpenBags()
+ local autoOpen = addon.Modules.DB:GetSetting("autoOpenBags")
+ if autoOpen == nil then autoOpen = true end
+ if autoOpen then
+ Guda_BagFrame:Show()
+ end
+ end
+
+ addon.Modules.Events:Register("MAIL_SHOW", AutoOpenBags, "BagFrame")
+ addon.Modules.Events:Register("BANKFRAME_OPENED", AutoOpenBags, "BagFrame")
+ addon.Modules.Events:Register("AUCTION_HOUSE_SHOW", AutoOpenBags, "BagFrame")
+ addon.Modules.Events:Register("TRADE_SHOW", AutoOpenBags, "BagFrame")
-- Track vendor interactions to avoid closing bags when a vendor is opened
addon.Modules.Events:Register("MERCHANT_SHOW", function()
isMerchantOpen = true
- -- Optional: ensure bags are visible when a vendor is opened
- local frameRef = getglobal("Guda_BagFrame")
- if frameRef and not frameRef:IsShown() then
- frameRef:Show()
+ -- Auto-open bags when visiting a vendor (respects setting)
+ local autoOpen = addon.Modules.DB:GetSetting("autoOpenBags")
+ if autoOpen == nil then autoOpen = true end
+ if autoOpen then
+ local frameRef = getglobal("Guda_BagFrame")
+ if frameRef and not frameRef:IsShown() then
+ frameRef:Show()
+ end
end
-- Auto-sell junk items (spread across frames to avoid item locking)
diff --git a/UI/SettingsPopup.lua b/UI/SettingsPopup.lua
index 0659c2e..c2f94c6 100644
--- a/UI/SettingsPopup.lua
+++ b/UI/SettingsPopup.lua
@@ -1392,6 +1392,38 @@ function Guda_SettingsPopup_AutoVendorJunkCheckbox_OnClick(self)
end
end
+-- Auto Open Bags Checkbox OnLoad
+function Guda_SettingsPopup_AutoOpenBagsCheckbox_OnLoad(self)
+ local text = getglobal(self:GetName().."Text")
+ if text then
+ text:SetText("Auto Open Bags")
+
+ local font, _, flags = text:GetFont()
+ if font then
+ text:SetFont(font, 13, flags)
+ end
+ end
+
+ self.tooltipText = "Automatically open bags when interacting with bank, auction house, mail, or trade."
+
+ local enabled = true
+ if Guda and Guda.Modules and Guda.Modules.DB then
+ enabled = Guda.Modules.DB:GetSetting("autoOpenBags")
+ if enabled == nil then enabled = true end
+ end
+
+ self:SetChecked(enabled and 1 or 0)
+end
+
+-- Auto Open Bags Checkbox OnClick
+function Guda_SettingsPopup_AutoOpenBagsCheckbox_OnClick(self)
+ local isChecked = self:GetChecked() == 1
+
+ if Guda and Guda.Modules and Guda.Modules.DB then
+ Guda.Modules.DB:SetSetting("autoOpenBags", isChecked)
+ end
+end
+
-- White Items as Junk Checkbox OnLoad
function Guda_SettingsPopup_WhiteItemsJunkCheckbox_OnLoad(self)
local text = getglobal(self:GetName().."Text")
diff --git a/UI/SettingsPopup.xml b/UI/SettingsPopup.xml
index de3c606..edc03fd 100644
--- a/UI/SettingsPopup.xml
+++ b/UI/SettingsPopup.xml
@@ -303,6 +303,19 @@
Guda_SettingsPopup_AutoVendorJunkCheckbox_OnClick(this)
+
+
+
+
+
+
+
+
+
+ Guda_SettingsPopup_AutoOpenBagsCheckbox_OnLoad(this)
+ Guda_SettingsPopup_AutoOpenBagsCheckbox_OnClick(this)
+
+