Go to Page... |
|
Thread Tools | Display Modes |
07-19-12, 04:59 AM | #1 |
StanceButton1 taint in nMainbar
So, Blizzard was kind enough introduce StanceButton1:SetPoint(...) inside StanceBar.lua:StanceBar_Update()
Code:
function StanceBar_Update () local numForms = GetNumShapeshiftForms(); if ( numForms > 0 and not IsPossessBarVisible()) then --Setup the Stance bar to display the appropriate number of slots if ( numForms == 1 ) then StanceBarMiddle:Hide(); StanceBarRight:SetPoint("LEFT", "StanceBarLeft", "LEFT", 12, 0); StanceButton1:SetPoint("BOTTOMLEFT", "StanceBarFrame", "BOTTOMLEFT", 12, 3); elseif ( numForms == 2 ) then StanceBarMiddle:Hide(); StanceBarRight:SetPoint("LEFT", "StanceBarLeft", "RIGHT", 0, 0); else StanceBarMiddle:Show(); StanceBarMiddle:SetPoint("LEFT", "StanceBarLeft", "RIGHT", 0, 0); StanceBarMiddle:SetWidth(37 * (numForms-2)); StanceBarMiddle:SetTexCoord(0, numForms-2, 0, 1); StanceBarRight:SetPoint("LEFT", "StanceBarMiddle", "RIGHT", 0, 0); end StanceBarFrame:Show(); StanceBar_UpdateState(); else StanceBarFrame:Hide(); end UIParent_ManageFramePositions(); end So I tried a couple of hacks to prevent StanceBar_Update() from moving StanceButton1: 1. I just override Blizzard's function, however this obviously caused taint issues. lua Code:
2. I figured I could force the statement numForms == 1 to always be false, because that's the only time they re-position. I figured this was a golden solution, however, it also caused taint lua Code:
3. Now I tried to save the position of StanceButton1 before StanceBar_Update() moves it, and do a hooksecurefunc('StanceBar_Update', ...) and move it after that. Also taint, apparently, you can't do StanceButton1:ClearAllPoints() from inside that hook (WTF?): lua Code:
4. Next, I came up with the idea of just calling StanceBar_Update() immediately in my code to have it execute before the user position got set. This oddly enough also caused taint lua Code:
5. This works, but is ugly as hell and some quirks appear from time to time: lua Code:
The taint causes a interface blocked action thingie when trying to do action bar switching when in combat, and blocked it from switching. Anyone have any thoughts? I find it weird that StanceButton1:ClearAllPoints() sometimes causes taint, and sometimes it doesn't. Oh yeah, the addon is nMainbar and here's the MoP source: https://github.com/renstrom/NeavUI/b.../stancebar.lua. |
|
WoWInterface » Site Forums » Archived Beta Forums » MoP Beta archived threads » StanceButton1 taint in nMainbar |
«
Previous Thread
|
Next Thread
»
|
Display Modes |
Switch to Linear Mode |
Switch to Hybrid Mode |
Threaded Mode |
|
|