Files
maui-linux/MERGE_TRACKING.md
Dave Friedel 4d225a43ef Fix BindingModes: SkiaLabel, SkiaScrollView
- SkiaLabel.cs: Added TwoWay to VerticalTextAlignment, LineBreakMode,
  MaxLines, LineHeight, CharacterSpacing, Padding
- SkiaScrollView.cs: Added TwoWay to Orientation, HorizontalScrollBarVisibility,
  VerticalScrollBarVisibility, ScrollBarColor, ScrollBarWidth

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-01 14:29:10 -05:00

217 lines
9.1 KiB
Markdown

# OpenMaui Linux - Recovery Merge Tracking
**Branch:** `final`
**Last Updated:** 2026-01-01
**Build Status:** SUCCEEDS
---
## HANDLERS
**CRITICAL**: All handlers must use namespace `Microsoft.Maui.Platform.Linux.Handlers` and follow decompiled EXACTLY.
| File | Status | Notes |
|------|--------|-------|
| ActivityIndicatorHandler.Linux.cs | [x] | **FIXED 2026-01-01** - Removed IsEnabled/BackgroundColor (not in production), fixed namespace |
| ApplicationHandler.cs | [x] | **VERIFIED 2026-01-01** - Matches production |
| BorderHandler.cs | [ ] | BLOCKED - needs SkiaBorder.MauiView and Tapped |
| BoxViewHandler.cs | [x] | **VERIFIED 2026-01-01** - Matches production, Color/CornerRadius/Background/BackgroundColor |
| ButtonHandler.Linux.cs | [x] | **FIXED 2026-01-01** - Removed MapText/TextColor/Font (not in production), fixed namespace, added null checks |
| CheckBoxHandler.Linux.cs | [x] | **FIXED 2026-01-01** - Added VerticalLayoutAlignment/HorizontalLayoutAlignment, fixed namespace |
| CollectionViewHandler.cs | [x] | **VERIFIED 2026-01-01** - Matches production |
| DatePickerHandler.cs | [x] | **VERIFIED 2026-01-01** - Matches production, dark theme support |
| EditorHandler.Linux.cs | [x] | **CREATED 2026-01-01** - Was missing, created from decompiled |
| EntryHandler.Linux.cs | [x] | **FIXED 2026-01-01** - Added CharacterSpacing/ClearButtonVisibility/VerticalTextAlignment, fixed namespace, null checks |
| FlexLayoutHandler.cs | [x] | **VERIFIED 2026-01-01** - Matches production |
| FlyoutPageHandler.cs | [x] | **VERIFIED 2026-01-01** - Matches production |
| FrameHandler.cs | [ ] | BLOCKED - needs SkiaFrame.MauiView and Tapped event |
| GestureManager.cs | [x] | **VERIFIED 2026-01-01** - Matches production |
| GraphicsViewHandler.cs | [x] | **VERIFIED 2026-01-01** - Matches production |
| GtkWebViewHandler.cs | [x] | Added new file from decompiled |
| GtkWebViewManager.cs | [x] | **VERIFIED 2026-01-01** - Matches production |
| GtkWebViewPlatformView.cs | [x] | **VERIFIED 2026-01-01** - Matches production |
| GtkWebViewProxy.cs | [x] | Added new file from decompiled |
| ImageButtonHandler.cs | [x] | **VERIFIED 2026-01-01** - Matches production, has ImageSourceServiceResultManager |
| ImageHandler.Linux.cs | [x] | **VERIFIED 2026-01-01** - Matches production, FontImageSource rendering |
| ItemsViewHandler.cs | [x] | **VERIFIED 2026-01-01** - Matches production |
| LabelHandler.Linux.cs | [x] | **FIXED 2026-01-01** - Added CharacterSpacing/LayoutAlignment/FormattedText, ConnectHandler gesture logic, fixed namespace |
| LayoutHandler.cs | [x] | **VERIFIED 2026-01-01** - Matches production, includes StackLayoutHandler/GridHandler |
| NavigationPageHandler.cs | [x] | **VERIFIED 2026-01-01** - Matches production, toolbar items, SVG/PNG icons |
| PageHandler.cs | [x] | **VERIFIED 2026-01-01** - Matches production, includes ContentPageHandler |
| PickerHandler.Linux.cs | [x] | **CREATED 2026-01-01** - Was missing, created from decompiled with collection changed tracking |
| ProgressBarHandler.Linux.cs | [x] | **FIXED 2026-01-01** - Added ConnectHandler/DisconnectHandler IsVisible tracking, fixed namespace |
| RadioButtonHandler.Linux.cs | [x] | **VERIFIED 2026-01-01** - Matches production, Content/GroupName/Value in ConnectHandler |
| ScrollViewHandler.Linux.cs | [x] | **VERIFIED 2026-01-01** - Matches production, CommandMapper with RequestScrollTo |
| SearchBarHandler.Linux.cs | [x] | **FIXED 2026-01-01** - Fixed namespace, added CancelButtonColor, SolidPaint, null checks |
| ShellHandler.cs | [x] | **VERIFIED 2026-01-01** - Matches production, navigation event handling |
| SliderHandler.Linux.cs | [x] | **FIXED 2026-01-01** - Removed BackgroundColor (use base), fixed namespace, added ConnectHandler init calls |
| StepperHandler.Linux.cs | [x] | **VERIFIED 2026-01-01** - Matches production, dark theme support |
| SwitchHandler.Linux.cs | [x] | **FIXED 2026-01-01** - Added OffTrackColor logic, fixed namespace, removed extra BackgroundColor |
| TabbedPageHandler.cs | [x] | **VERIFIED 2026-01-01** - Matches production, SelectedIndexChanged event |
| TimePickerHandler.cs | [x] | **VERIFIED 2026-01-01** - Matches production, dark theme support |
| WebViewHandler.cs | [x] | **VERIFIED 2026-01-01** - Matches production |
| WindowHandler.cs | [x] | **VERIFIED 2026-01-01** - Matches production, includes SkiaWindow class |
---
## VIEWS
| File | Status | Notes |
|------|--------|-------|
| SkiaActivityIndicator.cs | [x] | Verified - all TwoWay, logic matches |
| SkiaAlertDialog.cs | [ ] | |
| SkiaBorder.cs | [ ] | Contains SkiaFrame |
| SkiaBoxView.cs | [x] | Verified - all TwoWay, logic matches |
| SkiaButton.cs | [x] | Verified - all TwoWay, logic matches |
| SkiaCarouselView.cs | [ ] | |
| SkiaCheckBox.cs | [x] | Verified - IsChecked=OneWay, rest TwoWay, logic matches |
| SkiaCollectionView.cs | [ ] | |
| SkiaContentPresenter.cs | [ ] | |
| SkiaContextMenu.cs | [ ] | |
| SkiaDatePicker.cs | [ ] | |
| SkiaEditor.cs | [x] | **FIXED 2026-01-01** - All BindingModes corrected (Text=OneWay, others=TwoWay) |
| SkiaEntry.cs | [x] | **FIXED 2026-01-01** - TextProperty BindingMode.OneWay, others TwoWay |
| SkiaFlexLayout.cs | [ ] | |
| SkiaFlyoutPage.cs | [ ] | |
| SkiaGraphicsView.cs | [ ] | |
| SkiaImage.cs | [ ] | |
| SkiaImageButton.cs | [ ] | |
| SkiaIndicatorView.cs | [ ] | |
| SkiaItemsView.cs | [x] | Added GetItemView() method |
| SkiaLabel.cs | [x] | **FIXED 2026-01-01** - All BindingModes TwoWay |
| SkiaLayoutView.cs | [ ] | Contains SkiaGrid, SkiaStackLayout, SkiaAbsoluteLayout, GridLength, GridPosition |
| SkiaMenuBar.cs | [ ] | Contains MenuItem, MenuBarItem |
| SkiaNavigationPage.cs | [ ] | |
| SkiaPage.cs | [x] | Added SkiaToolbarItem.Icon property |
| SkiaPicker.cs | [x] | FIXED - SelectedIndex=OneWay, all others=TwoWay (was missing) |
| SkiaProgressBar.cs | [x] | Verified - Progress=OneWay, rest TwoWay, logic matches |
| SkiaRadioButton.cs | [ ] | |
| SkiaRefreshView.cs | [ ] | |
| SkiaScrollView.cs | [x] | **FIXED 2026-01-01** - All BindingModes TwoWay |
| SkiaSearchBar.cs | [ ] | |
| SkiaShell.cs | [x] | **FIXED 2026-01-01** - Added FlyoutTextColor, ContentBackgroundColor, route registration, query parameters, OnScroll |
| SkiaSlider.cs | [x] | FIXED - Value=OneWay, rest TwoWay (agent had inverted all) |
| SkiaStepper.cs | [ ] | |
| SkiaSwipeView.cs | [ ] | |
| SkiaSwitch.cs | [x] | FIXED - IsOn=OneWay (agent had TwoWay) |
| SkiaTabbedPage.cs | [ ] | |
| SkiaTemplatedView.cs | [ ] | |
| SkiaTimePicker.cs | [ ] | |
| SkiaView.cs | [x] | Made Arrange() virtual |
| SkiaVisualStateManager.cs | [ ] | |
| SkiaWebView.cs | [x] | **FIXED 2026-01-01** - Full X11 embedding, position tracking, hardware accel, load callbacks |
---
## SERVICES
| File | Status | Notes |
|------|--------|-------|
| AppActionsService.cs | [ ] | |
| AppInfoService.cs | [ ] | |
| AtSpi2AccessibilityService.cs | [ ] | |
| BrowserService.cs | [ ] | |
| ClipboardService.cs | [ ] | |
| ConnectivityService.cs | [ ] | |
| DeviceDisplayService.cs | [ ] | |
| DeviceInfoService.cs | [ ] | |
| DisplayServerFactory.cs | [ ] | |
| DragDropService.cs | [ ] | |
| EmailService.cs | [ ] | |
| Fcitx5InputMethodService.cs | [ ] | |
| FilePickerService.cs | [ ] | |
| FolderPickerService.cs | [ ] | |
| FontFallbackManager.cs | [ ] | |
| GlobalHotkeyService.cs | [ ] | |
| Gtk4InteropService.cs | [ ] | |
| GtkHostService.cs | [ ] | |
| HardwareVideoService.cs | [ ] | |
| HiDpiService.cs | [ ] | |
| HighContrastService.cs | [ ] | |
| IAccessibilityService.cs | [ ] | |
| IBusInputMethodService.cs | [ ] | |
| IInputMethodService.cs | [ ] | |
| InputMethodServiceFactory.cs | [ ] | |
| LauncherService.cs | [ ] | |
| LinuxResourcesProvider.cs | [ ] | |
| NotificationService.cs | [ ] | |
| PortalFilePickerService.cs | [ ] | |
| PreferencesService.cs | [ ] | |
| SecureStorageService.cs | [ ] | |
| ShareService.cs | [ ] | |
| SystemThemeService.cs | [ ] | |
| SystemTrayService.cs | [ ] | |
| VersionTrackingService.cs | [ ] | |
| VirtualizationManager.cs | [ ] | |
| X11InputMethodService.cs | [ ] | |
---
## HOSTING
| File | Status | Notes |
|------|--------|-------|
| LinuxMauiAppBuilderExtensions.cs | [ ] | |
| LinuxMauiContext.cs | [ ] | |
| LinuxProgramHost.cs | [ ] | |
| LinuxViewRenderer.cs | [ ] | |
| MauiAppBuilderExtensions.cs | [ ] | |
| MauiHandlerExtensions.cs | [ ] | |
---
## DISPATCHING
| File | Status | Notes |
|------|--------|-------|
| LinuxDispatcher.cs | [ ] | |
| LinuxDispatcherProvider.cs | [ ] | |
| LinuxDispatcherTimer.cs | [ ] | |
---
## NATIVE
| File | Status | Notes |
|------|--------|-------|
| CairoNative.cs | [ ] | |
| GdkNative.cs | [ ] | |
| GLibNative.cs | [ ] | |
| GtkNative.cs | [ ] | |
| WebKitNative.cs | [ ] | |
---
## WINDOW
| File | Status | Notes |
|------|--------|-------|
| CursorType.cs | [ ] | |
| GtkHostWindow.cs | [ ] | |
| X11Window.cs | [ ] | |
---
## RENDERING
| File | Status | Notes |
|------|--------|-------|
| GtkSkiaSurfaceWidget.cs | [ ] | |
---
## CORE
| File | Status | Notes |
|------|--------|-------|
| LinuxApplication.cs | [ ] | |
| LinuxApplicationOptions.cs | [ ] | |
---
## TYPES
| File | Status | Notes |
|------|--------|-------|
| ToggledEventArgs.cs | [x] | ADDED - was missing, required by SkiaSwitch |