Update version from 9.0.0 to 9.0.40 to align precisely with MAUI 9.0.40 release. Update CHANGELOG, package metadata, and templates. Fix thread safety issue in FontFallbackManager by changing _glyphCache from Dictionary to ConcurrentDictionary to prevent race conditions during concurrent glyph lookups.
Change version from 1.0.0 to 9.0.0 to align with .NET 9 / MAUI 9.0.x versioning convention. Update all package references, templates, and documentation. Change copyright holder from "MarketAlly LLC" to "MarketAlly Pte Ltd" across all files. Update CHANGELOG to document version realignment and mark 1.0.0 as deprecated. Update release notes to reflect 541 passing tests (up from 217) and include native resource leak fixes, SafeHandle wrappers, and performance benchmarks.
Implement SafeHandle wrappers for native resources (SafeGtkWidgetHandle, SafeGObjectHandle, SafeX11DisplayHandle, SafeX11CursorHandle, SafeDlopenHandle) to prevent memory leaks. Move gesture and rendering configuration from static properties to LinuxApplicationOptions for better testability and DI compatibility. Add THREADING.md and DI-MIGRATION.md documentation. Include LayoutIntegrationTests for Measure/Arrange pipeline and SkiaViewTheoryTests with parameterized test cases using [Theory] attributes.
Update package references from RC/preview versions to stable 1.0.* across all templates and project files. Mark RC1 roadmap as completed and update documentation to reflect v1.0.0 release. Add GestureManager cleanup in SkiaView.Dispose() to prevent memory leaks. Update copyright years to 2025-2026 and add development artifacts to .gitignore.
Implements Priority 4 item: WebView via WebKitGTK
New files:
- Interop/WebKitGtk.cs - P/Invoke bindings for WebKitGTK library
- Views/LinuxWebView.cs - WebKitGTK-based WebView platform control
- Handlers/WebViewHandler.Linux.cs - MAUI handler for WebView on Linux
- samples_temp/WebViewDemo/ - Demo app for WebView functionality
Features:
- Full HTML5/CSS3/JavaScript support via WebKitGTK
- Navigation (back/forward/reload)
- URL and HTML source loading
- JavaScript evaluation
- Navigation events (Navigating/Navigated)
- Automatic GTK event processing
Requirements:
- libwebkit2gtk-4.1-0 package on target Linux system
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Priority 1 - Stability:
- Dirty region invalidation in SkiaRenderingEngine
- Font fallback chain (FontFallbackManager) for emoji/CJK/international text
- Input method polish with Fcitx5 support alongside IBus
Priority 2 - Platform Integration:
- Portal file picker (PortalFilePickerService) with zenity/kdialog fallback
- System theme detection (SystemThemeService) for GNOME/KDE/XFCE/etc
- Notification actions support with D-Bus callbacks
Priority 3 - Performance:
- GPU acceleration (GpuRenderingEngine) with OpenGL, software fallback
- Virtualization manager (VirtualizationManager) for list recycling
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- How to add Linux to existing MAUI projects
- Why Linux doesn't appear in VS platform dropdown
- Building for Linux from Windows (CLI, WSL, VM)
- Debugging options (remote, WSL, VM)
- Project structure recommendations
- Build and packaging instructions
- Common issues and solutions
- IDE recommendations
- CI/CD examples