kstange / MasqueBlizzInv

This addon enables Masque to skin the built-in WoW inventory UI
MIT License
3 stars 0 forks source link

Icons not being skinned #1

Closed liononabicycle closed 3 weeks ago

liononabicycle commented 1 month ago

For some reason, the icons are not being skinned for me. Even with only Masque and this addon enabled, none of them are skinned like my action bars are. There don’t seem to be any conflicts either.

kstange commented 1 month ago

Hi! Thanks for using the addon!

I need to ask a few questions to get an idea what's going on.

liononabicycle commented 1 month ago

Thanks for the response. I did a bunch of testing today to discover what's going on and narrowed down the issue.

I reinstalled all of my add ons and reset some settings. I got it to work on most things but it still does not affect the inbox (mail).

I initially thought I had turned off all add ons before I posted the issue but apparently there was a conflict with another Addon I am using, Skinner, causing the icons to disappear when used with your Addon, even though Skinner isn't intended to change icons at all, just the color and texture of UI elements. It's really odd. I understand this probably isn't in your purview to fix though.

kstange commented 1 month ago

I looked at Skinner and it aggressively shuffles around elements, including hiding anything in the major game windows that it finds on the draw layer BACKGROUND because it assumes all that stuff will be frame background art. It probably doesn't do that to action bars since they don't really have background art it's trying to replace. Icons are usually set to the ARTWORK layer, but for some reason most Masque skins including the officially maintained ones, reset the layer to BACKGROUND causing Skinner to hide them. I'm asking the maintainer of Masque if there's a good reason for Masque to do that. If there is, then it may just be a standoff between Skinner and Masque I can't do much about.

I did fix a couple spots where I was doing the same thing to custom icons I was creating for workarounds, and I'll get those out in the next release, but it won't fix all the places I found that are broken.

liononabicycle commented 1 month ago

Thank you so much for looking into it and trying to resolve it. I really appreciate it.

kstange commented 1 month ago

I talked with the Masque maintainer and they said that due to the skin config it's probably mostly just the way it is, but they would look into whether there's anything they can fix on their side. There's one possible way I might be able to address it from my side.

The root of this is really that Masque was originally conceived for skinning ActionButtons. ItemButtons, while supported, are handled less consistently in WoW game code and have slightly different defaults. Masque's methodology tweaks ItemButtons to behave a bit more like ActionButtons in some ways, but other addons that look at them don't really expect that.

In theory I can capture each time Masque skins a button and try to undo the draw layer change it makes to get it back to the way Skinner expect it to look, but I'll have to approach each button group manually since they're so inconsistent in game code.

liononabicycle commented 1 month ago

Thank you for the explanation. That makes sense and explains why some buttons/icons are skinned while others are not when used with your addon.

While I would personally appreciate the effort, that does seem like quite a bit of work.

Skinner seems to be the only addon I can find that skins all frames in the game successfully. Combined with this addon and Masque, it’s a super lightweight solution to a whole new UI skin that’s a near match to ElvUI at a fraction of the resources.

liononabicycle commented 1 month ago

I "solved" this by switching to AuroraClassic for skinning frames. I still use skinner to skin what aurora won't by turning most frame skinning off and it works great. Still very lightweight.

kstange commented 3 weeks ago

The maintainer of Masque has made some changes to how icons are skinned which should resolve these issues. I've also been able to remove my workaround code as a result. You should see everything working properly with Skinner if you update to Masque 11.0.2 and Masque Blizzard Inventory 11.0.5.0. If you do find any further issues, please let me know!