Socialite (Titan Social)

Socialite (Titan Social)

1M Downloads

Freeze/lock on mouse-over during combat

solocommand opened this issue ยท 3 comments

commented

Originally reported Sep 1 by CantHeals and techan9ne via Curse.

Users have reported that when hovering over the TitanSocial button they experience lockups and degraded performance. Initial reports indicate that periods of high activity contribute to the performance issues.

The following conditions have been reported as causing the freezes:

  • With large friend/guild lists, noticable lag when guild/RealID log on/off.
  • Freezing occurs when mousing over the button with the TitanPanel dropdown open
  • when leaving the cursor over the button for longer than 10 seconds.
  • Using in combination with ElvUI
  • When system is under load due to combat/etc.

Additional reported issues that are not directly impacting titan panel/social:

  • Background color of tooltip/spellbook "breaks" and changes colors.
  • Duplicate log off messages for RealID friends

Initial investigation points toward multiple/duplicative events being dispatched and causing frequent redraws for the tooltop/button text in a short time period.

commented

During combat I've seen TitanSocial hit the "Script ran too long" error. I've been meaning to look into coalescing events, and possibly providing a slimmed-down experience for combat lockdown (e.g. caching the last info we displayed and just showing that during combat with a header indicating that it's cached data).

commented

Definitely a good idea, that. I've been looking at trying to add some sort of delay for events but haven't had any luck so far.

I've never encountered the same error, but I also have a lot less activity with friends/guild than most people I think. We might be able to do something about it, but I'm wondering if TP itself is the cause of the double event dispatching -- though the duplicate RealID messages would seem to indicate it's the Blizz API itself sending the events twice.

commented

At the very least I want to try and coalesce all events that happen during a single frame. It's not too hard, we just need to create a private frame, set an OnUpdate event on it that refreshes the display, and then show that frame whenever we get an event and hide it in the OnUpdate handler.

If I have time I'll take a crack at it tonight.