diff --git a/esoui/ingame/skills/gamepad/gamepadskills.lua b/esoui/ingame/skills/gamepad/gamepadskills.lua
index 746780c..6245613 100755
--- a/esoui/ingame/skills/gamepad/gamepadskills.lua
+++ b/esoui/ingame/skills/gamepad/gamepadskills.lua
@@ -243,6 +243,11 @@ function ZO_GamepadSkills:InitializeKeybindStrip()
--Here we determine what fragment to load, but we're going to wait until it loads to decide how to populate it
--So we'll prevent any further movement and proceed based on what we expect the selected data to be by the time we need it.
--We may already be in the process of a scroll, so "current data" isn't reliable.
+ if not IsActionBarSlottingAllowed() then
+ ZO_Alert(UI_ALERT_CATEGORY_ERROR, SOUNDS.NEGATIVE_CLICK, SI_SKILLS_DISABLED_SPECIAL_ABILITIES)
+ return false
+ end
+
self:DeactivateCurrentList()
local selectedData = self.categoryList:GetTargetData()
if selectedData == ACTION_BAR_ID then
@@ -353,7 +358,7 @@ function ZO_GamepadSkills:InitializeKeybindStrip()
self.assignableActionBar:Deactivate()
GAMEPAD_TOOLTIPS:ClearTooltip(GAMEPAD_RIGHT_TOOLTIP)
PlaySound(SOUNDS.GAMEPAD_MENU_BACK)
- self:SetMode(ABILITY_LIST_BROWSE_MODE)
+ --Don't set mode back to ABILITY_LIST_BROWSE_MODE til OnAbilityFinalizedCallback says everything worked
end
else
self:DeactivateCurrentList()
@@ -412,6 +417,7 @@ function ZO_GamepadSkills:InitializeAssignableActionBar()
self.singleAbilitySkillType = nil
self.singleAbilitySkillLineIndex = nil
self.singleAbilityAbilityIndex = nil
+ self:SetMode(ABILITY_LIST_BROWSE_MODE)
end
end)
@@ -509,7 +515,8 @@ function ZO_GamepadSkills:InitializeLineFilterList()
list:AddDataTemplate("ZO_GamepadSkillsDummyMenuEntry", ActionBarSetup)
end
- local lineFilterPreviewList = ZO_ParametricScrollList:New(ZO_GamepadSkillsLinePreview:GetNamedChild("Scroll"):GetNamedChild("Container"):GetNamedChild("List"), PARAMETRIC_SCROLL_LIST_VERTICAL)
+ local lineFilterPreviewContainer = ZO_GamepadSkillsLinePreview:GetNamedChild("ScrollContainer")
+ local lineFilterPreviewList = ZO_ParametricScrollList:New(lineFilterPreviewContainer:GetNamedChild("List"), PARAMETRIC_SCROLL_LIST_VERTICAL)
lineFilterPreviewList:SetHeaderPadding(GAMEPAD_HEADER_DEFAULT_PADDING, 0)
lineFilterPreviewList:SetUniversalPostPadding(GAMEPAD_DEFAULT_POST_PADDING)
lineFilterPreviewList:SetSelectedItemOffsets(0, 0)
@@ -519,6 +526,7 @@ function ZO_GamepadSkills:InitializeLineFilterList()
lineFilterPreviewList:AddDataTemplateWithHeader("ZO_GamepadAbilityEntryTemplate", MenuAbilityEntryTemplateSetup, nil, IsSkillEqual, "ZO_GamepadMenuEntryHeaderTemplate")
self.lineFilterPreviewList = lineFilterPreviewList
+ self.lineFilterPreviewWarning = lineFilterPreviewContainer:GetNamedChild("Warning")
self.lineFilterList = self:AddList("LineFilter", SetupLineFilterList)
@@ -624,8 +632,7 @@ function ZO_GamepadSkills:InitializeEvents()
self.control:RegisterForEvent(EVENT_SKILL_XP_UPDATE, FullRefresh)
self.control:RegisterForEvent(EVENT_SKILL_POINTS_CHANGED, FullRefresh)
self.control:RegisterForEvent(EVENT_ABILITY_PROGRESSION_RANK_UPDATE, FullRefresh)
- self.control:RegisterForEvent(EVENT_ABILITY_LIST_CHANGED, FullRefresh)
-
+ self.control:RegisterForEvent(EVENT_SKILL_ABILITY_PROGRESSIONS_UPDATED, FullRefresh)
self.control:RegisterForEvent(EVENT_ACTION_SLOT_UPDATED, MarkForRefreshVisible)
self.control:RegisterForEvent(EVENT_ACTIVE_WEAPON_PAIR_CHANGED, OnActiveWeaponPairChanged)
@@ -700,6 +707,18 @@ function ZO_GamepadSkills:RefreshLineFilterList(refreshPreviewList)
local list = refreshPreviewList and self.lineFilterPreviewList or self.lineFilterList
list:Clear()
+ --Don't show the preview list if action bar slotting isn't allowed
+ if refreshPreviewList then
+ if not IsActionBarSlottingAllowed() then
+ self.lineFilterPreviewWarning:SetHidden(false)
+ self.lineFilterPreviewWarning:SetText(GetString(SI_SKILLS_DISABLED_SPECIAL_ABILITIES))
+ list:Commit()
+ return
+ else
+ self.lineFilterPreviewWarning:SetHidden(true)
+ end
+ end
+
if not refreshPreviewList then
list:AddEntry("ZO_GamepadSkillsDummyMenuEntry", ACTION_BAR_ID)
end