Retire Linux-era view shims#906
Conversation
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
This PR retires legacy Linux/Mono-era managed Views shims (ViewInputManager, ManagedVwWindow) and updates code/docs/build plumbing to rely solely on the Windows-native Views input and geometry paths.
Changes:
- Removed managed shim projects/sources and related solution/build/reg-free manifest wiring.
- Simplified native Views codepaths to always use Windows-native
VwTextStore(input) andGetClientRect(geometry), eliminating COM activation branches. - Updated OpenSpec architecture docs/specs and change-tracking artifacts to reflect the shim retirement.
Reviewed changes
Copilot reviewed 28 out of 28 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| openspec/specs/architecture/ui-framework/views-rendering.md | Updates architecture diagram text to reflect Windows-native input/geometry and shim retirement. |
| openspec/specs/architecture/interop/native-boundary.md | Updates interop boundary documentation to remove ManagedVwWindow as an active boundary. |
| openspec/specs/architecture/interop/com-contracts.md | Notes retired shims in COM contracts documentation. |
| openspec/changes/retire-linux-era-view-shims/** | Adds proposal/design/research/tasks and requirements specs for shim retirement and validation. |
| Src/views/VwRootBox.cpp | Removes non-Windows COM activation branch for ViewInputManager. |
| Src/views/VwSelection.cpp | Removes non-Windows IVwWindow wrapper path; always uses GetClientRect. |
| Src/views/VwTextStore.cpp | Removes non-Windows conditional around ClientToScreen / TSF-related behavior. |
| Src/views/Views.idh | Removes IVwWindow/VwWindow interface+coclass; adjusts IViewInputMgr comment. |
| Src/views/Views_GUIDs.cpp | Removes GUID exports for IVwWindow/VwWindow. |
| Src/Common/SimpleRootSite/ViewInputManager.cs | Deletes managed ViewInputManager shim. |
| Src/ManagedVwWindow/** | Deletes managed ManagedVwWindow project and its tests. |
| Build/RegFree.targets | Removes ManagedVwWindow.dll from managed COM manifest inputs. |
| Src/Common/FieldWorks/BuildInclude.targets | Removes ManagedVwWindow.dll from FieldWorks manifest inputs. |
| Build/mkall.targets | Removes excluded CLSIDs for the retired managed shims. |
| Build/Src/FwBuildTasks/CollectTargets.cs | Removes special-case Unix-only condition for ManagedVwWindow project. |
| FieldWorks.sln | Removes ManagedVwWindow projects from the solution. |
| .github/src-catalog.md | Removes catalog entry for ManagedVwWindow. |
NUnit Tests 1 files ±0 1 suites ±0 9m 25s ⏱️ - 1m 43s Results for commit 32dbddd. ± Comparison against base commit b0bf8a8. This pull request removes 2 tests. |
jasonleenaylor
left a comment
There was a problem hiding this comment.
@jasonleenaylor reviewed 20 files and all commit messages, and made 1 comment.
Reviewable status: 20 of 28 files reviewed, 4 unresolved discussions (waiting on johnml1135).
Summary
ViewInputManagerandManagedVwWindow, including their solution and build wiringVwTextStore/IViewInputMgrand HWND client-rectangle geometry while removing staleIVwWindow/VwWindowinterop exposureValidation
./build.ps1./test.ps1 -SkipManaged -TestProject TestViews./test.ps1 -TestProject FwBuildTasksTests -TestFilter "FullyQualifiedName~RegFreeCreator"./test.ps1 -TestProject SimpleRootSiteTestsCI: Whitespace checkThis change is