tullamods / Dominos

A main actionbar replacement
https://tullamods.com/dominos
BSD 3-Clause "New" or "Revised" License
79 stars 27 forks source link

bag's and keychain bar bugged #766

Closed sausje closed 9 months ago

sausje commented 11 months ago

After last update the bag's and keychain bar is invisible but still shows it's tooltips when hovering over, it can also be clicked in that state. I've got the menu bar fully hidden so it should be hidden too. When I swap back to version 10.1.2 this doesn't happen and everything works as expected.

Addon Version 10.1.3

World of Warcraft Version Wrath Classic

Xanpop commented 11 months ago

Disabling an addon called MoveAny by D4KiR fixed my bag bar not showing in Dominos.

sausje commented 11 months ago

Disabling an addon called MoveAny by D4KiR fixed my bag bar not showing in Dominos.

It's not about it not showing though.

Proditae commented 11 months ago

Hi all, i can confirm this bug on my client too. The previous version of the addon worked fine with MoveAny, this lastest release is the one that's not working. These last two days MoveAny had a couple of updates, today they released a new one. Right now i'm using Dominos 10.1.2 AND MoveAny 1.5.1.0; and they both work as intended. I think the problem is on the lastest Dominos and not something that the MoveAny addon did.

I would like to add a big thank you to Tullamods, i really love what you're doing with Dominos!. It runs perfectly with my old potato PC while Bartender grinds my cpu =(.

Chao!

Xanpop commented 11 months ago

Disabling an addon called MoveAny by D4KiR fixed my bag bar not showing in Dominos.

It's not about it not showing though.

My bad, I thought I was helping.

Tuller commented 11 months ago

@sausje do you have a screenshot of what you're seeing?

sausje commented 11 months ago

@sausje do you have a screenshot of what you're seeing?

I'll do you one better, here you can see what I mean (because it's difficult to show in screenshots). Just watch my mouse at the bottom right of the screen. https://www.youtube.com/watch?v=gzcksNN5Vgs

As you can see, once the newest version is installed, that hidden bar is suddenly not really hidden anymore.

Tuller commented 11 months ago

Questions:

sausje commented 11 months ago

Questions:

* Have you manually disabled the bag bar within Dominos? (Via like `/run Dominos.db.profile.modules.BagBar = false`). If so then that makes sense as I made a change to only run some initialization logic only if the module is loaded

* Is your bag bar hidden within Dominos, or just set to 0 opacity?

* Do you get the issue if you disable all other addons?

I've got it disabled by middle clicking on bag bar. But I'm also not seeing that bar anymore in configuration mode on the newer version. Like Dominos can't see the bar at all anymore. Yeah after disabling all addons it works, then after enabling MoveAny with it alone, it starts happening again. So your newer version is somehow conflicting with that addon. (Btw I've got nothing enabled in that addon, only moving the actual windows, all other frame/bars etc options aren't enabled.)

bendltd commented 11 months ago

Not sure if it helps much but I've the problem as well. I've set the bag bar like the previous commenter to be visible when hovering over it.

image

If I disable the bag manually with the command "/run Dominos.db.profile.modules.BagBar = false" the error won't show.

Hati- commented 10 months ago

Seems to be an incompatibility between Dominos and MoveAny. If you have both addons loaded with their default settings you will get this error:

[03:14:33] Dominos: Failed to load BagBar
Interface/AddOns/Dominos/bars/bagBar.lua:191: hooksecurefunc(): Layout is not a function

Looking at the code of MoveAny (https://github.com/d4kir92/MoveAny/blob/164e98f0b329553a1abee48db6e7e3eeb3be09e8/ele/bagbar.lua#L93C1-L96) it seems like MoveAny is creating the global variable BagsBar if it doesn't exist, and assigns it a dummy frame that mimics UIParent's visibility. BagsBar is part of Dragonflight's new editable UI and doesn't exist in classic, so MoveAny mocks it with this dummy frame in classic.

The issue is that when BagsBar exists then Dominos will try to hooksecurefunc() the Layout method of this dummy frame, but because this frame doesn't have the Layout method (dummy frame doesn't inherit UIParent.Layout), this call will crash with the error above and Dominos's BagBarModule will not work.

https://github.com/tullamods/Dominos/blob/ed4136f9a69b1d1cc0ae27da691355570afb9022/Dominos/bars/bagBar.lua#L189-L192

In the past, MoveAny's dummy frame used to have UIParent as its parent frame, causing it to inherit the UIParent.Layout method and have these two addons to work together just fine. But with v1.4.0 of MoveAny this was changed, and this dummy frame now does not have any parent frame given and instead hooks to a few methods from UIParent to mirror its visibility (https://github.com/d4kir92/MoveAny/blob/164e98f0b329553a1abee48db6e7e3eeb3be09e8/core.lua#L31-L66)

In my opinion the fault is at the MoveAny addon for mocking BagsBar, but a quick fix here would be to to do something like:

elseif BagsBar and type(BagsBar.Layout) == 'function' then
d4kir92 commented 10 months ago

MoveAny is now compatible with Dominos: v1.6.8+

bendltd commented 10 months ago

@Hati- Thanks a lot for the breakdown and thanks a lot for the quick fix @d4kir92. It work as intended and I can hover over the BagBar to make it visible.