ElvUI Enhanced Again (DF)

ElvUI Enhanced Again (DF)

1M Downloads

Minimap button bar has odd positioning

Xyrm opened this issue · 8 comments

commented

Just made the upgrade + swap to the "DF" version of this addon, using the newest elvui (13.32) and elvui enhanced again (4.2.1).

I only have 2 icons on this char on my minimap button bar, and with a 5 items per row setting, it has some weird stuff.
map

If i enable the backdrop it looks like a 5x2 grid, instead of a 5x1 grid. If I change the size of the buttons per row setting, it seems to move the items around almost randomly. IE: if i set it to 3 buttons per row and enable backdrop...

map2

As you can see from the bug sack icon, there's no error being thrown. The buttons are otherwise fully functional, just in weird spots.

commented

Experiencing a similar issue, though I have mine set up as 2 rows of 6 buttons. The buttons appear anywhere in that grid, though they do appear in the same locations on each login.

I noticed that my bank character was not experiencing this issue and discovered that it's being caused (somehow) by DBM Status Bar Timers. Disabling it makes the issue disappear, though this is obviously not a desirable solution for anyone using DBM as it is an integral part of the addon.

commented

Like many other addons, DBM uses LibDBIcon to create its minimap button. LibDBIcon got a series of updates recently, and one of the changes is this:

  • Remove the concept of buttons not being created unless they've been set to show. They are now always created and just hidden.

This affects all the addons that use LibDBIcon, and confuses ElvUI Enhanced Again's minimap button grid which assumes that all children of Minimap are visible buttons that need a place on the grid. This was incorrect previously too, but only noticeable immediately after hiding a button that was already created, and gone on next login/reload. Now that hidden buttons are always created, ElvUI Enhanced Again needs to take them into account, perhaps by filtering buttons based on their :IsShown() and hooking their :Show(), :Hide() and :SetShown() to trigger layout updates as needed.

Disabling DBM Status Bar Timers also prevents loading DBM Core, which includes the newest version of LibDBIcon. Other addons can work with whatever older version of LibDBIcon they come with, but sooner or later they too will receive updates that include newest LibDBIcon.

commented

Any update on this? Mitalie has offered a potential diagnosis for this issue and it has been almost 3 months since then.

commented

i came across the same issue after loading up wow again today, so i digged in a bit and here is the fix:
go to \ElvUI_Enhanced\modules\maps\minimapbuttons.lua open it in your favorite text editor

in line 7 under local _G = _G add local LibDBIcon = LibStub('LibDBIcon-1.0')
then go to line 97 and add the following:

-- check if the button is a LibDBIcon and if it was hidden:
local libIconName = string.gsub(name,"LibDBIcon10_","")
if (not (libIconName == name)) and LibDBIcon then
	local libBtn = LibDBIcon:GetMinimapButton(libIconName)
	if libBtn.db and libBtn.db.hide then
		return
	end
end	
commented

Thanks. This seems to have solved the problem.

commented

Thanks for the possible solution, Draugor. I just used it in the latest release, but for some people on curse it seems to break the buttonbar in total.

I'll have to look into this a bit deeper.

commented

Like many other addons, DBM uses LibDBIcon to create its minimap button. LibDBIcon got a series of updates recently, and one of the changes is this:

  • Remove the concept of buttons not being created unless they've been set to show. They are now always created and just hidden.

This affects all the addons that use LibDBIcon, and confuses ElvUI Enhanced Again's minimap button grid which assumes that all children of Minimap are visible buttons that need a place on the grid. This was incorrect previously too, but only noticeable immediately after hiding a button that was already created, and gone on next login/reload. Now that hidden buttons are always created, ElvUI Enhanced Again needs to take them into account, perhaps by filtering buttons based on their :IsShown() and hooking their :Show(), :Hide() and :SetShown() to trigger layout updates as needed.

Disabling DBM Status Bar Timers also prevents loading DBM Core, which includes the newest version of LibDBIcon. Other addons can work with whatever older version of LibDBIcon they come with, but sooner or later they too will receive updates that include newest LibDBIcon.

Thanks for the input, i'll try to dive into this comming weekend.

commented

but for some people on curse it seems to break the buttonbar in total.

really ? that shouldn't break anything that hard, only thing i can think of is if libBtn is nil, so might want to guard against that, in hindsight i should have done that initially ^^°