Skip to content

MapWinGIS6 – ActiveX Test Host Enhancement Plan - #58

Merged
pmeems merged 2 commits into
developmentfrom
feature/activex-interactive-mouse-navigation
Nov 6, 2026
Merged

pmeems merged 2 commits into
developmentfrom
feature/activex-interactive-mouse-navigation

Conversation

@pmeems

@pmeems pmeems commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

Implements PR 3 from the ActiveX Test Host Enhancement Plan.

  • Routes left-button drags to MapView::Pan using viewport resolution, and anchors wheel zoom at the cursor with MapView::ZoomAt.
  • Handles native and windowless capture, capture loss, cancellation, close, and destruction; resizing continues to preserve the existing view.
  • Adds hosted input coverage and updates the README and architecture/testing documentation.

Validation: Debug | x64 build with 0 warnings (origin/development baseline: 0); Core tests 268 passed, 1 skipped; ActiveX tests 46 passed, 2 skipped; registered-host input test passed; C# automated host checks passed. No dependencies added. The registered-host mouse test is opt-in and not part of default CI.

- Pan with captured left-button drags and anchor wheel zoom at the cursor.
- Test hosted input and document the navigation behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

@Julian-MW Julian-MW left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Automated review. Final decision is with the human reviewer.

Comment thread docs/ARCHITECTURE.md Resolved

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

Windowless panning can start without granted mouse capture, and the navigation test does not reliably detect incorrect zoom anchoring, scaling, or pan direction.

2 open issues
What changed in this PR

Implements mouse navigation in the ActiveX wrapper using the core’s existing MapView API, without adding input handling to the core.

Changes:

  • Adds left-button drag panning and cursor-anchored wheel zoom.
  • Handles native and windowless mouse capture, including drag cancellation and cleanup.
  • Extends opt-in hosted input coverage and documents navigation behavior.

Builds and tests were not run during this review.

File Description
tests/​MapWinGIS.ActiveX.Tests/​ActiveXActivationTests.cpp Adds hosted wheel-zoom and drag-pan checks.
src/​MapWinGIS.ActiveX/​MapWinGISControl.h Declares input handlers, capture helpers, and drag state.
src/​MapWinGIS.ActiveX/​MapWinGISControl.cpp Implements mouse navigation and capture lifecycle handling.
README.md Documents mouse navigation and resize behavior.
docs/​TESTING.md Describes opt-in hosted input coverage.
docs/​ARCHITECTURE.md Explains input routing to the shared viewport.

Review effort: Balanced

- Require successful windowless capture before starting a drag.

- Compare hosted mouse navigation with explicit COM navigation.

- Update the architecture guide for implemented navigation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@pmeems
pmeems merged commit ed4edb5 into development Nov 6, 2026
1 check passed
@pmeems
pmeems deleted the feature/activex-interactive-mouse-navigation branch November 6, 2026 15:03
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