diff --git a/UI/BagFrame.lua b/UI/BagFrame.lua
index cd4f7c0..1eaddc6 100644
--- a/UI/BagFrame.lua
+++ b/UI/BagFrame.lua
@@ -1469,6 +1469,53 @@ function Guda_BagSlot_OnEnter(button, bagID)
GameTooltip:Show()
end
+-- Highlight all item slots belonging to a specific bag by dimming others
+function Guda_BagFrame_HighlightBagSlots(bagID)
+ local itemContainer = getglobal("Guda_BagFrame_ItemContainer")
+ if not itemContainer then
+ addon:Debug("HighlightBagSlots: itemContainer not found")
+ return
+ end
+
+ local highlightCount = 0
+ local dimCount = 0
+
+ -- Iterate through all children (item buttons)
+ local children = { itemContainer:GetChildren() }
+ for _, button in ipairs(children) do
+ -- Check if this is an item button
+ if button.hasItem ~= nil and button:IsShown() then
+ if button.bagID == bagID then
+ -- This button belongs to the hovered bag - keep it bright
+ button:SetAlpha(1.0)
+ highlightCount = highlightCount + 1
+ else
+ -- This button belongs to a different bag - dim it
+ button:SetAlpha(0.25)
+ dimCount = dimCount + 1
+ end
+ end
+ end
+
+ addon:Debug(string.format("HighlightBagSlots: Highlighted %d slots, dimmed %d slots for bagID %d", highlightCount, dimCount, bagID))
+end
+
+-- Clear all highlighting by restoring full opacity to all slots
+function Guda_BagFrame_ClearHighlightedSlots()
+ local itemContainer = getglobal("Guda_BagFrame_ItemContainer")
+ if not itemContainer then return end
+
+ -- Iterate through all children (item buttons)
+ local children = { itemContainer:GetChildren() }
+ for _, button in ipairs(children) do
+ -- Check if this is an item button
+ if button.hasItem ~= nil and button:IsShown() then
+ -- Restore full opacity
+ button:SetAlpha(1.0)
+ end
+ end
+end
+
-- Initialize
function BagFrame:Initialize()
-- Hook default bag functions
diff --git a/UI/BagFrame.xml b/UI/BagFrame.xml
index 26f1db2..3f2354c 100644
--- a/UI/BagFrame.xml
+++ b/UI/BagFrame.xml
@@ -294,9 +294,11 @@
Guda_BagSlot_OnEnter(this, 1)
+ Guda_BagFrame_HighlightBagSlots(1)
GameTooltip:Hide()
+ Guda_BagFrame_ClearHighlightedSlots()
Guda_BagSlot_OnEvent(this, event, arg1)
@@ -325,9 +327,11 @@
Guda_BagSlot_OnEnter(this, 2)
+ Guda_BagFrame_HighlightBagSlots(2)
GameTooltip:Hide()
+ Guda_BagFrame_ClearHighlightedSlots()
Guda_BagSlot_OnEvent(this, event, arg1)
@@ -356,9 +360,11 @@
Guda_BagSlot_OnEnter(this, 3)
+ Guda_BagFrame_HighlightBagSlots(3)
GameTooltip:Hide()
+ Guda_BagFrame_ClearHighlightedSlots()
Guda_BagSlot_OnEvent(this, event, arg1)
@@ -387,9 +393,11 @@
Guda_BagSlot_OnEnter(this, 4)
+ Guda_BagFrame_HighlightBagSlots(4)
GameTooltip:Hide()
+ Guda_BagFrame_ClearHighlightedSlots()
Guda_BagSlot_OnEvent(this, event, arg1)
@@ -437,9 +445,11 @@
GameTooltip:SetOwner(this, "ANCHOR_TOP")
GameTooltip:SetText("Toggle Keyring")
GameTooltip:Show()
+ Guda_BagFrame_HighlightBagSlots(-2)
GameTooltip:Hide()
+ Guda_BagFrame_ClearHighlightedSlots()