diff --git a/src/Classes/ControlHost.lua b/src/Classes/ControlHost.lua index 30f1573cbf..13aec58ef9 100644 --- a/src/Classes/ControlHost.lua +++ b/src/Classes/ControlHost.lua @@ -33,11 +33,16 @@ function ControlHostClass:GetMouseOverControl() end function ControlHostClass:ProcessControlsInput(inputEvents, viewPort) + local processedImbuedControl for id, event in ipairs(inputEvents) do if event.type == "KeyDown" then if self.selControl then + processedImbuedControl = self.selControl.imbuedSelect and self.selControl.dropped and event.key:match("BUTTON") self:SelectControl(self.selControl:OnKeyDown(event.key, event.doubleClick)) inputEvents[id] = nil + if processedImbuedControl then -- stop click through of any control behind imbuedSupport dropdown + return + end end if not self.selControl and event.key:match("BUTTON") then self:SelectControl() diff --git a/src/Classes/GemSelectControl.lua b/src/Classes/GemSelectControl.lua index 853db7607e..a39b7c3d7c 100644 --- a/src/Classes/GemSelectControl.lua +++ b/src/Classes/GemSelectControl.lua @@ -58,6 +58,11 @@ function GemSelectClass:CalcOutputWithThisGem(calcFunc, gemData, useFullDPS) local gemList = self.skillsTab.displayGroup.gemList local displayGemList = self.skillsTab.displayGroup.displayGemList local oldGem + + -- the imbuedSupport control actively switches to the latest index of the current displayGroup's gemList so we can use the canSupport filtering + if self.imbuedSelect then + self.index = #gemList + 1 + end if gemList[self.index] then oldGem = copyTable(gemList[self.index], true) else diff --git a/src/Classes/SkillsTab.lua b/src/Classes/SkillsTab.lua index 1a1dcbbd61..117f19ed1b 100644 --- a/src/Classes/SkillsTab.lua +++ b/src/Classes/SkillsTab.lua @@ -630,13 +630,6 @@ function SkillsTabClass:PasteSocketGroup(testInput) end end --- the imbued support control actively switches to the latest count of the current displayGroup's gemList so we can use the canSupport filtering -local function updateImbuedSupportIndex(control, gemListCount) - if gemListCount > 0 then - control.index = gemListCount + 1 - end -end - -- Create the controls for editing the gem at a given index function SkillsTabClass:CreateGemSlot(index) local slot = { } @@ -656,7 +649,6 @@ function SkillsTabClass:CreateGemSlot(index) self.gemSlots[index2].enableGlobal2.state = gemInstance.enableGlobal2 self.gemSlots[index2].count:SetText(gemInstance.count or 1) end - updateImbuedSupportIndex(self.controls.imbuedSupport, #self.displayGroup.gemList) self:AddUndoState() self.build.buildFlag = true end) @@ -1109,7 +1101,6 @@ function SkillsTabClass:ProcessSocketGroup(socketGroup) end end end - updateImbuedSupportIndex(self.controls.imbuedSupport, #socketGroup.gemList) end -- Set the skill to be displayed/edited