From cd34ab77d23fa68f38530e9534f8c3841927a65a Mon Sep 17 00:00:00 2001 From: Sam Sung <51686767+samwhosung@users.noreply.github.com> Date: Wed, 30 Sep 2026 15:31:35 +0700 Subject: [PATCH] /errors: put Clear and Close in the panel art's sockets (#720) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `/errors` window wears the ClassTrainer panel art, but its Clear and Close buttons sat at y −455, below the art, and its detail pane ran to −442, into the button sockets. On that art the class trainer lays out (`Blizzard_TrainerUI.xml`, `ClassTrainer_SetToClassTrainer`): - a 296×184 list at (−67, −96) from the top right, with 11 rows; - a 119-tall detail pane 8 below the list, ending at −407; - Train and Exit, 80×22, centred at (224, −420) and (305, −420). The log now uses those frames: Clear and Close sit in the sockets, the detail ends above them, and the list shows 11 rows, not 13. The new test lays out the stock trainer and the log in one UI and checks that each log frame equals the trainer's, with the buttons inside the window. It fails on the old layout. Fixes #698 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 5.5 --- .../benilla-app/assets/ui/ScriptLogFrame.xml | 50 ++++--- .../benilla-app/src/ui_script/layer_tests.rs | 128 +++++++++++++++++- .../src/ui_script/trainer_tests.rs | 4 +- 3 files changed, 158 insertions(+), 24 deletions(-) diff --git a/crates/benilla-app/assets/ui/ScriptLogFrame.xml b/crates/benilla-app/assets/ui/ScriptLogFrame.xml index ef460f43..d12319a8 100644 --- a/crates/benilla-app/assets/ui/ScriptLogFrame.xml +++ b/crates/benilla-app/assets/ui/ScriptLogFrame.xml @@ -1,16 +1,20 @@