Legacy-of-Sylvanaar / wow-instant-messenger

WIM (WoW Instant Messenger) is a World of Warcraft addon which brings an instant messenger feel to communication in game.
https://www.curseforge.com/wow/addons/wim-3
MIT License
11 stars 7 forks source link

Tab Management not working in Cata #85

Closed orionshock closed 1 month ago

orionshock commented 1 month ago

Describe the bug Tab management is set to group whispers from guild and friends. But does not, it simply starts stacking windows together. Once stacked, it still doesn't add new guild members to existing stack.

To Reproduce Steps to reproduce the behavior: Whisper more than 1 person from your guild or friends list

Expected behavior To form a tab group on the oldest whisper window that has a guild member.


There seems to be string case issue in the Tab Management Module

https://github.com/Legacy-of-Sylvanaar/wow-instant-messenger/blob/18c69d4fa2516ae80818ebb891dcbe2bb5ed24f1/Modules/TabManagement.lua#L33 https://github.com/Legacy-of-Sylvanaar/wow-instant-messenger/blob/18c69d4fa2516ae80818ebb891dcbe2bb5ed24f1/Modules/TabManagement.lua#L54 https://github.com/Legacy-of-Sylvanaar/wow-instant-messenger/blob/18c69d4fa2516ae80818ebb891dcbe2bb5ed24f1/Modules/TabManagement.lua#L75

The tables in lists{} are all in Title Case. However the variable "user" it's looking up is in all lower case letters. That variable is coming from the pairs loop of Whispers, a dictionary list of lower case names and window frames. Changing to "win.theUser" instead as the key lookup, fixes the issue and windows start to group as expected.

As that file hasn't been touched in over 2years, I suspect that what ever system is filling the lists table might have changed. When I dump the table lists.guild, I get a table of proper case names. However with the way the tab management system is working it's looking for something in all lower case letters.

Pazza commented 1 month ago

Good catch. There were issues with case and names so window management normalized names and forced lowercase for internal indexing. If not using the correct version of user/theUser this would break the indexing in tabs, and possibly other areas too. I will implement the fix and look for other areas this might break something. Thanks for bringing this to my attention.