diff --git a/esoui/ingame/inventory/gamepad/gamepadinventory.lua b/esoui/ingame/inventory/gamepad/gamepadinventory.lua
index dc3ad12..6dc8f30 100755
--- a/esoui/ingame/inventory/gamepad/gamepadinventory.lua
+++ b/esoui/ingame/inventory/gamepad/gamepadinventory.lua
@@ -188,6 +188,13 @@ function ZO_GamepadInventory:OnUpdate(currentFrameTimeSeconds)
self:RefreshItemActionList()
end
end
+
+ if self.updateItemActions then
+ self.updateItemActions = nil
+ if SCENE_MANAGER:IsShowing("gamepad_inventory_item_filter") then
+ self:RefreshItemActionList()
+ end
+ end
end
do
@@ -637,9 +644,13 @@ function ZO_GamepadInventory:InitializeItemList()
end
if SCENE_MANAGER:IsShowing("gamepad_inventory_item_filter") then
+ if self.selectedItemFilterType == ITEMFILTERTYPE_QUICKSLOT then
+ KEYBIND_STRIP:UpdateKeybindButton(self.quickslotKeybindDescriptor)
+ elseif self.selectedItemFilterType == ITEMFILTERTYPE_ARMOR or self.selectedItemFilterType == ITEMFILTERTYPE_WEAPONS then
KEYBIND_STRIP:UpdateKeybindButton(self.toggleCompareModeKeybindStripDescriptor)
end
end
+ end
SHARED_INVENTORY:RegisterCallback("FullInventoryUpdate", OnInventoryUpdated)
SHARED_INVENTORY:RegisterCallback("SingleSlotInventoryUpdate", OnInventoryUpdated)
@@ -1009,7 +1020,11 @@ function ZO_GamepadInventory:RefreshItemList()
local remaining, duration
if isQuestItem then
+ if itemData.toolIndex then
remaining, duration = GetQuestToolCooldownInfo(itemData.questIndex, itemData.toolIndex)
+ elseif itemData.stepIndex and itemData.conditionIndex then
+ remaining, duration = GetQuestItemCooldownInfo(itemData.questIndex, itemData.stepIndex, itemData.conditionIndex)
+ end
else
remaining, duration = GetItemCooldownInfo(itemData.bagId, itemData.slotIndex)
end
@@ -1066,9 +1081,13 @@ function ZO_GamepadInventory:RefreshItemActionList()
self.itemActionList:Commit()
- if targetData and numActions == 0 then
- --If there is an item selected and it has no actions it may be on cooldown so refresh until its cooldown is up.
- self:MarkDirty()
+
+ if targetData and targetData.timeCooldownRecorded and targetData.cooldownRemaining then
+ local cooldownEndTime = targetData.timeCooldownRecorded + targetData.cooldownRemaining
+ if cooldownEndTime > GetFrameTimeMilliseconds() then
+ --If there is an item selected and it has a cooldown, let the refresh function get called until it is no longer in cooldown
+ self.updateItemActions = true
+ end
end
end