acdream/tests/AcDream.App.Tests/UI/Layout
Erik 78bf62c80e fix(chat): the tell prefill leaves the caret after the prefix, not before it
Clicking a name filled the entry with "@tell Name, " correctly but parked the
caret at column 0, so the player had to click the chat bar to get behind their
own prefix before typing — which defeats most of the point of the affordance.

Self-inflicted in d32ef388. SetText already places the caret at the end, and I
stacked an explicit "move to the end" on top of it. MoveCaret takes a DELTA, so
int.MaxValue overflowed _caret + delta to negative and the clamp landed at
column 0. The redundant call was not merely redundant; it was the bug.

Removing it is the whole fix. The test now pins CaretPos as well as the text,
and reintroducing the call reproduces the reported symptom exactly (expected
11, actual 0).

Solution builds clean; full hermetic gate green.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 08:00:43 +02:00
..
fixtures fix(ui): restore retail vitals and window interactions 2026-08-20 13:26:35 +02:00
AppraisalUiControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
CharacterControllerTests.cs feat(render): Campaign V slice V11 commit 1 - delete ImGui, Studio, and the DevTools frontend 2026-07-28 23:56:04 +02:00
CharacterCreationAppearancePageSwatchColorTests.cs fix(chargen): Campaign CC gate round 1 re-test 2 — R3-5/R3-6 color-key swatch/gradient textures 2026-08-16 17:20:31 +02:00
CharacterCreationLiveDatTests.cs test: separate non-hermetic release lanes 2026-08-18 10:49:22 +02:00
CharacterCreationUiControllerTests.cs fix(ui): systemic escape normalization at the string source 2026-08-17 13:26:25 +02:00
CharacterLayoutImportProbe.cs test: make prerequisite lanes fail honestly 2026-08-18 12:09:41 +02:00
CharacterManagementLiveDatTests.cs test: separate non-hermetic release lanes 2026-08-18 10:49:22 +02:00
CharacterManagementUiControllerTests.cs feat(chargen): Campaign CC slice CC7 — end-to-end create flow + connected checklist 2026-08-16 02:35:21 +02:00
CharacterOptionsPageControllerTests.cs feat(ui): vitals — Side By Side Vitals swaps retail's two vitals windows 2026-08-17 10:40:49 +02:00
CharacterScreensFixedCanvasArbiterTests.cs fix(chargen): Campaign CC CC7 review fix round — F1-F9 — REVIEW-CLOSED 2026-08-16 03:13:02 +02:00
CharacterSheetProviderTests.cs feat(player): port retail augmentation stat chain 2026-07-31 08:08:23 +02:00
CharacterStatControllerTests.cs fix(ui): refresh live skill rows 2026-07-31 08:22:46 +02:00
ChargenColorSpotComposerTests.cs fix(chargen): Campaign CC gate round 1 re-test 2 — R3-5/R3-6 color-key swatch/gradient textures 2026-08-16 17:20:31 +02:00
ChatIndicatorButtonLiveMountProbeTests.cs test: make prerequisite lanes fail honestly 2026-08-18 12:09:41 +02:00
ChatLayoutConformanceTests.cs fix(ui): restore retail vitals and window interactions 2026-08-20 13:26:35 +02:00
ChatOptionsDatDefaultsTests.cs test: make prerequisite lanes fail honestly 2026-08-18 12:09:41 +02:00
ChatOptionsPageControllerTests.cs test: replace campaign labels with behavior names 2026-08-18 12:25:00 +02:00
ChatTagClickTests.cs feat(chat): CT-A5 — clicking a speaker's name opens a tell 2026-08-21 07:34:58 +02:00
ChatTranscriptRendererTests.cs feat(chat): retail text style — two-plane glyph outlines, authored SpewBox/chat styles 2026-08-10 19:28:34 +02:00
ChatTranscriptRunsTests.cs feat(chat): CT-A4 — speaker names render in retail's tag colour 2026-08-21 07:31:20 +02:00
ChatWindowControllerTests.cs fix(chat): the tell prefill leaves the caret after the prefix, not before it 2026-08-21 08:00:43 +02:00
CombatLayoutConformanceTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
CombatUiControllerTests.cs fix: powerbar mode captions - jump 'Height' + combat 'Power'/'Accuracy' 2026-08-14 08:14:14 +02:00
ConfigOptionsPageControllerTests.cs fix(ui): Options panel Config tab content escapes the window frame — stale viewport anchor capture, not a missing clip 2026-08-17 00:24:33 +02:00
CreatureAppraisalRowsTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
DatRichTextTests.cs fix(ui): systemic escape normalization at the string source 2026-08-17 13:26:25 +02:00
DatStringEscapeSweepTests.cs test: separate non-hermetic release lanes 2026-08-18 10:49:22 +02:00
DatStringResolverTemplateTests.cs build: make release restore reproducible 2026-08-18 10:29:00 +02:00
DatWidgetFactoryFontResolveTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
DatWidgetFactoryTests.cs fix(ui): systemic escape normalization at the string source 2026-08-17 13:26:25 +02:00
DormantDatWidgetConformanceTests.cs test: remove final campaign labels 2026-08-18 13:50:31 +02:00
EffectsUiControllerTests.cs fix(ui): effects list stayed pinned at its authored height in a taller window 2026-08-20 21:00:16 +02:00
ElementReaderTests.cs feat(ui): #409 — client-wide retail tooltip system 2026-08-16 20:03:24 +02:00
ExternalContainerControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
FaPanelSlotProbeTests.cs test: make prerequisite lanes fail honestly 2026-08-18 12:09:41 +02:00
FixtureLoader.cs feat(ui): Map/House panel — slices 2+3, panel shell + Map tab 2026-08-17 02:04:19 +02:00
FloatingChatLayoutConformanceTests.cs fix(chat): CH6a/b rework — grip media, retail window-id model, floaty fixture 2026-08-10 13:09:32 +02:00
FloatingChatWindowControllerTests.cs feat(chat): Campaign CH slice CH6b — floating chat windows 1-4 2026-08-10 12:10:20 +02:00
IndicatorBarControllerTests.cs fix(movement): invalidate burden on enchantment changes 2026-07-31 10:16:27 +02:00
IndicatorDetailPanelControllerTests.cs fix(ui): restore effect detail scrolling 2026-07-17 13:28:18 +02:00
InventoryControllerTests.cs fix(ui): restore retail vitals and window interactions 2026-08-20 13:26:35 +02:00
InventoryFrameImportProbe.cs test: make prerequisite lanes fail honestly 2026-08-18 12:09:41 +02:00
ItemAppraisalTextFormatterTests.cs test: make prerequisite lanes fail honestly 2026-08-18 12:09:41 +02:00
ItemCooldownUiControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
ItemListCellTemplateTests.cs test: make prerequisite lanes fail honestly 2026-08-18 12:09:41 +02:00
JumpPowerbarControllerTests.cs feat(ui): port retail jump power bar 2026-07-13 10:22:12 +02:00
JumpPowerbarLayoutConformanceTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
KeyboardConfigControllerTests.cs fix #394 #395 #396: OP8 re-gate round — caption font, retail key names, capture dialog 2026-08-14 13:45:55 +02:00
KeyboardConfigLiveMountProbeTests.cs test: make prerequisite lanes fail honestly 2026-08-18 12:09:41 +02:00
LayoutConformanceTests.cs feat(ui): port retained widget foundations 2026-07-10 17:55:41 +02:00
LayoutImporterMediaBearingChildSweepTests.cs test: separate non-hermetic release lanes 2026-08-18 10:49:22 +02:00
LayoutImporterTests.cs feat(ui): #409 — client-wide retail tooltip system 2026-08-16 20:03:24 +02:00
MapHousePanelControllerTests.cs fix(ui): morning gate — map town markers: green rollover highlight + the authored map-note tooltip skin/font 2026-08-17 09:22:46 +02:00
MapHousePanelLiveDatMountTests.cs test: separate non-hermetic release lanes 2026-08-18 10:49:22 +02:00
MapHousePanelSlotProbeTests.cs test: make prerequisite lanes fail honestly 2026-08-18 12:09:41 +02:00
MapNoteLiveDatTests.cs test: separate non-hermetic release lanes 2026-08-18 10:49:22 +02:00
MapPageControllerTests.cs fix(ui): Map tab player/house icon resolution — build the button-swallowed icons from the panel-slot resolve tree, detached from the per-frame layout pass 2026-08-17 05:58:17 +02:00
MouseTurningSettingsMacroTests.cs feat(ui): Campaign OP slice OP3 — Options panel shell, open paths, Gameplay tab 2026-08-11 02:14:40 +02:00
OptionPageModelTests.cs fix(ui,runtime): OP4 re-review residuals R1-R4 (coordinator pass) — OP4 CLOSED 2026-08-11 06:36:14 +02:00
OptionsPanelControllerTests.cs fix #381: Options-panel footer needs an opaque backing field 2026-08-11 23:01:43 +02:00
OptionsPanelLayoutConformanceTests.cs test: remove final campaign labels 2026-08-18 13:50:31 +02:00
OptionsPanelLiveMountProbeTests.cs test: make prerequisite lanes fail honestly 2026-08-18 12:09:41 +02:00
PaperdollClickMapTests.cs test: make prerequisite lanes fail honestly 2026-08-18 12:09:41 +02:00
PaperdollControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
PaperdollSlotBackgroundTests.cs test: make prerequisite lanes fail honestly 2026-08-18 12:09:41 +02:00
PaperdollToggleTests.cs feat(D.2b): Slice 2 — paperdoll armor/non-armor partition + Slots toggle state 2026-06-23 08:57:50 +02:00
PowerbarLayoutProbeTests.cs test: make prerequisite lanes fail honestly 2026-08-18 12:09:41 +02:00
RadarControllerTests.cs fix(ui): restore retail vitals and window interactions 2026-08-20 13:26:35 +02:00
RadarLayoutConformanceTests.cs feat(ui): port retail radar and compass 2026-07-10 16:14:37 +02:00
RadarSnapshotProviderTests.cs refactor(app): key live projections by runtime identity 2026-07-25 21:50:58 +02:00
RetailDialogFactoryTests.cs fix(ui,net): Campaign LA gate round 2 — char-select exit confirmation, authored row justify, world name 2026-08-15 11:50:45 +02:00
RetailFixtureConformanceTests.cs feat(ui): port retail appraisal panel 2026-07-23 11:34:08 +02:00
RetailFpsControllerTests.cs fix #213: complete suicide and framerate presentation 2026-07-13 15:50:47 +02:00
RetailKeyNamesTests.cs fix #394 #395 #396: OP8 re-gate round — caption font, retail key names, capture dialog 2026-08-14 13:45:55 +02:00
RetailLayoutFixtureGenerator.cs test: make prerequisite lanes fail honestly 2026-08-18 12:09:41 +02:00
RetailPanelUiControllerTests.cs fix(ui): OP3 review fixes — byte-verified Magic chat lines, Gameplay/OptionPage shape, mid-air tri-state, shared geometry 2026-08-11 03:05:27 +02:00
RetailStringEscapesTests.cs fix(ui): systemic escape normalization at the string source 2026-08-17 13:26:25 +02:00
RetailTooltipPresenterTests.cs fix(ui): morning gate — world tooltips ride retail's mouse-idle dwell, not the found edge 2026-08-17 08:49:11 +02:00
RetailWindowFrameTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
RowTemplateResolverTests.cs feat(ui): FA4 -- fellowship page fully live 2026-08-12 04:40:53 +02:00
SelectedObjectControllerTests.cs test: remove final campaign labels 2026-08-18 13:50:31 +02:00
SocialFellowshipPageControllerTests.cs fix: social panel completion batch (user gate 2026-08-13, "fix all") 2026-08-13 19:30:51 +02:00
SocialPanelControllerTests.cs fix: social panel completion batch (user gate 2026-08-13, "fix all") 2026-08-13 19:30:51 +02:00
SocialPanelLiveMountProbeTests.cs test: make prerequisite lanes fail honestly 2026-08-18 12:09:41 +02:00
SpellbookRowStyleTests.cs test: make prerequisite lanes fail honestly 2026-08-18 12:09:41 +02:00
SpellbookWindowControllerTests.cs feat: regen buffs, wand aura, spellbook assess, indicator press flash 2026-08-20 20:38:28 +02:00
SpellcastingUiControllerTests.cs fix(ui): night-round review — F3/F4/F7 cast-button tooltip strings 2026-08-17 04:39:17 +02:00
SpellExamineComponentTemplateFactoryTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
ToolbarControllerTests.cs fix(ui): restore retail vitals and window interactions 2026-08-20 13:26:35 +02:00
ToolbarInputControllerTests.cs feat(ui): complete retail quick-slot input 2026-07-11 08:59:49 +02:00
TooltipLiveDatTests.cs test: separate non-hermetic release lanes 2026-08-18 10:49:22 +02:00
UiButtonCorpusSweepTests.cs test: separate non-hermetic release lanes 2026-08-18 10:49:22 +02:00
UiDatElementTests.cs fix #416 #415: the retail button state/media machine — roster hover highlight clears; probe wait verbs bind without an artifact dir 2026-08-17 16:25:36 +02:00
UiPropertyBagTests.cs feat(chat): retail text style — two-plane glyph outlines, authored SpewBox/chat styles 2026-08-10 19:28:34 +02:00
UiTextLayoutCacheTests.cs test(app): put every strict-zero site on the probe (#250) 2026-07-29 03:49:13 +02:00
UiViewportFactoryTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
VendorUiControllerTests.cs fix: retail text and golden-string tests must not follow the machine's locale 2026-08-19 19:56:09 +02:00
VitalsBindingTests.cs feat(ui): port retained widget foundations 2026-07-10 17:55:41 +02:00
VitalsDetailToggleTests.cs fix(ui): gate — no void frames around the login wormhole; vitals icons centered 2026-08-17 12:30:51 +02:00
VitalsSideBySideControllerTests.cs feat(ui): vitals — Side By Side Vitals swaps retail's two vitals windows 2026-08-17 10:40:49 +02:00
VividTargetIndicatorLayoutTests.cs feat(selection): port retail offscreen target indicator 2026-07-18 07:41:12 +02:00