fix(navigation): retain heading identity on Contents row content

Preserve the trusted heading Tag after adding native depth-marker layout, so repeat ItemClick can navigate an already selected heading. Retain original physical assertions and correct client-versus-screen diagnostic interpretation.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
This commit is contained in:
James MaesandCodex committed 2026-10-11 19:18:04 -05:00
1 parent 1bfab22835
commit 49f0556bf9
4 files changed
+40 -5

No files matched your search

+26 -2
View File
@@ -2,6 +2,30 @@
Updated: 2026-10-11
## Repeat Contents activation identity restored locally - 2026-10-11
Actual retained b2ecc8c pixels show the last Contents row selected while both
reader/source remain at middle after the repeated physical click. The new native
row changed content from a heading-tagged TextBlock to a Grid without that Tag.
ItemClick handles the clicked FrameworkElement's heading identity; selecting an
already selected row does not raise SelectionChanged. Restore the same trusted
DocumentHeading Tag on the content Grid. This is a precise metadata candidate,
not an alteration to source geometry, scroll thresholds or test assertions.
Existing Source_BidirectionalScroll performs the repeated physical activation and
must prove the correction on the next exact head. Release/format pass locally.
Correct the earlier input interpretation: InputDiagnostics.GetCurrentPoint(sender)
reports client coordinates. Do not compare110,307 directly to screen-space row
bounds318..358; the titlebar/client origin accounts for that difference. Tooltip
presence alone did not prove interception, and placement changes did not resolve
the failure. Trim-only full-title tips remain the intended UX refinement; the
repeat-click identity is the next specific correction to verify.
Pushed1bfab22 exact CI38187115859 is still live. Preserve focused/full/installed
execution before the next push. Local metadata correction is held; no current
GUI/runtime/signature or installed acceptance is claimed. No local input,
preview55472 changes, Azure retry, shared merge, tags or publication.
## Theme palettes/default controls and fixture cleanup prepared - 2026-10-11
Native theme rows now show five validated palette previews with hexadecimal
@@ -136,8 +160,8 @@ comment/attribute lookalikes and stopping at a new heading/Markdown boundary.
All598 core tests pass with100% measured line coverage, including CRLF, comments,
multiline closing syntax and unrelated blocks. Release/format pass.
Owned UI evidence shows the new full-title tooltip covering a subsequent Contents
click. Place the native tooltip to the right and make it non-hit-testable; retain
Owned UI evidence showed a tooltip near Contents rows; interception was an
unconfirmed hypothesis. Place the native tooltip to the right and make it non-hit-testable; retain
all physical click/alignment assertions. The exact native filename control1148/
Edit appears in owned enumeration despite the provider condition lookup timing
out; use that same ID/type in owned enumeration, without broader controls or a
+3
View File
@@ -1,5 +1,8 @@
# Development Tasks
- [x] Restore trusted heading Tag on the new Contents content Grid so repeat ItemClick can identify the selected row; local zero-warning build/format pass.
- [ ] Verify the unchanged repeated physical Contents activation/source alignment case on the next exact pushed head; client input coordinates are not screen bounds.
- [x] Prepare accessible native theme palette previews, state labels and explicit default radio selection with unchanged copied-draft/save semantics.
- [ ] Execute actual theme palette pixels/default/save/reopen acceptance and inspect its Settings screenshot on the exact next hosted head.
- [x] Retain terminal b2ecc8c focused23/24/native101/102 and published600-second timeout/no TRX; only source alignment fails in completed suites.
+10 -2
View File
@@ -76,8 +76,9 @@ Exactb5e519e focused19/22 and native98/100 fail, zero skips; the new General/
Contents options case passes. A line-start closing raw tag is a separate Markdig
HTML block; a reproduced correction now retains complete inline title syntax
across consecutive blocks.598 core tests pass with100% measured line coverage.
Actual tooltip placement covers a later Contents click; local placement/non-hit-
testing is corrected. Exact picker1148/Edit exists in owned enumeration despite
A tooltip appeared during the later Contents click; interception was not proved
and placement changes did not resolve the failure. Local trim-only tips retain
the intended full-title UX. Exact picker1148/Edit exists in owned enumeration despite
the provider lookup failure; local acceptance uses that same owned identity.
Retain current-focused-b5e519e.log/current-native-b5e519e.log and focused TRX/
Settings screenshot bundle. Fresh hosted runtime remains required.
@@ -110,3 +111,10 @@ acceptance exceeds the unchanged600-second bound with no final TRX; installed
lifecycle is not reached. Actual logs/artifacts are retained. Closing all fixture-
owned windows before FlaUI's unchanged close/kill fallback addresses repeated
five-second teardown waits; fresh whole-run evidence is required.
The remaining repeated-activation candidate restores the trusted DocumentHeading
Tag on the new Contents content Grid. ItemClick identifies its clicked native
FrameworkElement; an already selected row produces no SelectionChanged event.
The unchanged actual physical source/Contents regression must verify this on the
next head. Pointer diagnostics are client coordinates, not screen-space bounds;
the earlier direct coordinate/tooltip-interception inference was not established.
@@ -85,7 +85,7 @@ public sealed partial class MainWindow
MaxLines = _settings.WrapOutlineEntries ? 0 : 1,
};
Microsoft.UI.Xaml.Automation.AutomationProperties.SetAutomationId(label, "OutlineTitle:" + heading.Index.ToString(System.Globalization.CultureInfo.InvariantCulture));
var row = new Grid { Margin = new Thickness((heading.Level - 1) * 12, 0, 0, 0), ColumnSpacing = 6 };
var row = new Grid { Tag = heading, Margin = new Thickness((heading.Level - 1) * 12, 0, 0, 0), ColumnSpacing = 6 };
row.ColumnDefinitions.Add(new ColumnDefinition { Width = GridLength.Auto });
row.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) });
if(_settings.ShowOutlineDepthMarkers)