Optimize Open Mail recovery and bump to 1.4.10

- Remove Open Mail layout repair from MAIL_INBOX_UPDATE
- Avoid repeated SetParent/SetPoint/frame-level work during inbox refresh bursts
- Only repair the Open Mail button when its state is actually wrong
- Keep recovery on addon load and mailbox open
- Bump version to 1.4.10
This commit is contained in:
2026-09-14 07:42:19 +00:00
parent 6aab69a116
commit e3d2dc1034
4 changed files with 83 additions and 28 deletions
+6 -2
View File
@@ -25,7 +25,11 @@ Target: Turtle WoW 1.18.x / Octo client.
## Fixed in 1.4.9
- **Missing `Open Mail` button:** upstream creates `TurtleMailOpenMailButton` only once in `inbox_load()` and assumes it will remain parented, positioned, and visible forever. If that creation path is interrupted or another mailbox/UI addon hides or re-parents the button, TurtleMail never recovers it. The compatibility layer now uses an idempotent inbox loader and an `ensure_open_mail_button()` recovery path that recreates the button if needed, restores its parent/anchor/text/click handler/frame level, and re-shows it on mailbox/inbox refreshes.
- **Missing `Open Mail` button:** upstream creates `TurtleMailOpenMailButton` only once in `inbox_load()` and assumes it will remain parented, positioned, and visible forever. If that creation path is interrupted or another mailbox/UI addon hides or re-parents the button, TurtleMail never recovers it. The compatibility layer now uses an idempotent inbox loader and an `ensure_open_mail_button()` recovery path that recreates the button if needed and restores its parent/anchor/text/click handler/frame level.
## Fixed in 1.4.10
- **First mailbox-open freeze/stutter after the 1.4.9 recovery fix:** 1.4.9 called `ensure_open_mail_button()` on every `MAIL_INBOX_UPDATE`. Initial inbox population can emit a burst of those events, so the button was repeatedly re-parented, re-anchored, re-labeled, resized, and given a new frame level. 1.4.10 removes that work from `MAIL_INBOX_UPDATE` and makes `ensure_open_mail_button()` state-aware, so it only mutates the UI when the button is missing, hidden, moved, re-parented, or otherwise incorrect.
## Remaining architectural risks upstream
@@ -48,4 +52,4 @@ The compatibility build was tested in-game on Turtle WoW 1.18.x and the reported
## Status
**1.4.9 is the current stable release.** The fixes remain isolated in `TurtleMailFix.lua` so upstream code stays easy to compare and future upstream changes remain easier to merge.
**1.4.10 is the current stable release.** The fixes remain isolated in `TurtleMailFix.lua` so upstream code stays easy to compare and future upstream changes remain easier to merge.