Skip to content

Ensured zoom control invalidates adorner layer - #34

Merged
carl-andersson-at-westermo merged 1 commit into
mainfrom
fix/zoom-layer-does-not-invalidate-adorner-layer
Sep 22, 2026
Merged

carl-andersson-at-westermo merged 1 commit into
mainfrom
fix/zoom-layer-does-not-invalidate-adorner-layer

Conversation

@carl-andersson-at-westermo

Copy link
Copy Markdown
Collaborator

No description provided.

@carl-andersson-at-westermo
carl-andersson-at-westermo merged commit 4cc35c7 into main Sep 22, 2026
4 checks passed
@carl-andersson-at-westermo
carl-andersson-at-westermo deleted the fix/zoom-layer-does-not-invalidate-adorner-layer branch September 22, 2026 14:03

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Unresolved moderate issues affect test isolation, assertion reliability, template setup, and layout performance.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 2 Medium severity

Open (2)
What changed in this PR

Updates Avalonia zoom/pan handling so adorner layers track transformed graph content.

Changes:

  • Adds presenter and adorner-layer invalidation.
  • Adds regression tests for pan, zoom, and zoom-to-fill alignment.
File Summary Review findings
Westermo.GraphX.Controls.Avalonia/​Controls/​ZoomControl/​ZoomControl.cs Invalidates visuals and adorners after transform changes. Moderate: avoid measure invalidation when arrange invalidation is sufficient.
Westermo.GraphX.Controls.Avalonia.Tests/​ZoomControlAdornerLayerTests.cs Tests adorner alignment during viewport transformations. Moderate: close created windows, assert non-null visual mappings, and always apply templates.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

// matches a real themed application.
var layerManager = new VisualLayerManager { Child = zc };
var window = new Window { Width = 800, Height = 600, Content = layerManager };
window.Show();
Comment on lines +97 to +98
adornerLayer.InvalidateMeasure();
adornerLayer.InvalidateArrange();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants