Fix BorderHandler and FrameHandler ConnectHandler/DisconnectHandler
- Add ConnectHandler with MauiView property and Tapped event subscription - Add DisconnectHandler to cleanup event subscription and MauiView - Add OnPlatformViewTapped to call GestureManager.ProcessTap - These changes match the decompiled production code - Update MERGE_TRACKING.md to mark both handlers as complete 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -49,13 +49,28 @@ public partial class BorderHandler : ViewHandler<IBorderView, SkiaBorder>
|
|||||||
protected override void ConnectHandler(SkiaBorder platformView)
|
protected override void ConnectHandler(SkiaBorder platformView)
|
||||||
{
|
{
|
||||||
base.ConnectHandler(platformView);
|
base.ConnectHandler(platformView);
|
||||||
|
if (VirtualView is View view)
|
||||||
|
{
|
||||||
|
platformView.MauiView = view;
|
||||||
|
}
|
||||||
|
platformView.Tapped += OnPlatformViewTapped;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void DisconnectHandler(SkiaBorder platformView)
|
protected override void DisconnectHandler(SkiaBorder platformView)
|
||||||
{
|
{
|
||||||
|
platformView.Tapped -= OnPlatformViewTapped;
|
||||||
|
platformView.MauiView = null;
|
||||||
base.DisconnectHandler(platformView);
|
base.DisconnectHandler(platformView);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnPlatformViewTapped(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (VirtualView is View view)
|
||||||
|
{
|
||||||
|
GestureManager.ProcessTap(view, 0.0, 0.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void MapContent(BorderHandler handler, IBorderView border)
|
public static void MapContent(BorderHandler handler, IBorderView border)
|
||||||
{
|
{
|
||||||
if (handler.PlatformView is null || handler.MauiContext is null) return;
|
if (handler.PlatformView is null || handler.MauiContext is null) return;
|
||||||
|
|||||||
@@ -38,6 +38,31 @@ public partial class FrameHandler : ViewHandler<Frame, SkiaFrame>
|
|||||||
return new SkiaFrame();
|
return new SkiaFrame();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void ConnectHandler(SkiaFrame platformView)
|
||||||
|
{
|
||||||
|
base.ConnectHandler(platformView);
|
||||||
|
if (VirtualView is View view)
|
||||||
|
{
|
||||||
|
platformView.MauiView = view;
|
||||||
|
}
|
||||||
|
platformView.Tapped += OnPlatformViewTapped;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void DisconnectHandler(SkiaFrame platformView)
|
||||||
|
{
|
||||||
|
platformView.Tapped -= OnPlatformViewTapped;
|
||||||
|
platformView.MauiView = null;
|
||||||
|
base.DisconnectHandler(platformView);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnPlatformViewTapped(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (VirtualView is View view)
|
||||||
|
{
|
||||||
|
GestureManager.ProcessTap(view, 0.0, 0.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void MapBorderColor(FrameHandler handler, Frame frame)
|
public static void MapBorderColor(FrameHandler handler, Frame frame)
|
||||||
{
|
{
|
||||||
if (frame.BorderColor != null)
|
if (frame.BorderColor != null)
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
|------|--------|-------|
|
|------|--------|-------|
|
||||||
| ActivityIndicatorHandler.Linux.cs | [x] | **FIXED 2026-01-01** - Removed IsEnabled/BackgroundColor (not in production), fixed namespace |
|
| 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 |
|
| ApplicationHandler.cs | [x] | **VERIFIED 2026-01-01** - Matches production |
|
||||||
| BorderHandler.cs | [ ] | BLOCKED - needs SkiaBorder.MauiView and Tapped |
|
| BorderHandler.cs | [x] | **FIXED 2026-01-01** - Added ConnectHandler/DisconnectHandler with MauiView and Tapped event, OnPlatformViewTapped calls GestureManager.ProcessTap |
|
||||||
| BoxViewHandler.cs | [x] | **VERIFIED 2026-01-01** - Matches production, Color/CornerRadius/Background/BackgroundColor |
|
| 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 |
|
| 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 |
|
| CheckBoxHandler.Linux.cs | [x] | **FIXED 2026-01-01** - Added VerticalLayoutAlignment/HorizontalLayoutAlignment, fixed namespace |
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
| EntryHandler.Linux.cs | [x] | **FIXED 2026-01-01** - Added CharacterSpacing/ClearButtonVisibility/VerticalTextAlignment, fixed namespace, null checks |
|
| 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 |
|
| FlexLayoutHandler.cs | [x] | **VERIFIED 2026-01-01** - Matches production |
|
||||||
| FlyoutPageHandler.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 |
|
| FrameHandler.cs | [x] | **FIXED 2026-01-01** - Added ConnectHandler/DisconnectHandler with MauiView and Tapped event, OnPlatformViewTapped calls GestureManager.ProcessTap |
|
||||||
| GestureManager.cs | [x] | **VERIFIED 2026-01-01** - Matches production |
|
| GestureManager.cs | [x] | **VERIFIED 2026-01-01** - Matches production |
|
||||||
| GraphicsViewHandler.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 |
|
| GtkWebViewHandler.cs | [x] | Added new file from decompiled |
|
||||||
@@ -70,39 +70,57 @@
|
|||||||
| SkiaCollectionView.cs | [x] | **FIXED 2026-01-01** - Removed embedded SkiaSelectionMode, ItemsLayoutOrientation |
|
| SkiaCollectionView.cs | [x] | **FIXED 2026-01-01** - Removed embedded SkiaSelectionMode, ItemsLayoutOrientation |
|
||||||
| SkiaSelectionMode.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
| SkiaSelectionMode.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
||||||
| ItemsLayoutOrientation.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
| ItemsLayoutOrientation.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
||||||
| SkiaContentPresenter.cs | [ ] | |
|
| SkiaContentPresenter.cs | [x] | **FIXED 2026-01-01** - Removed embedded LayoutAlignment (now separate file) |
|
||||||
| SkiaContextMenu.cs | [ ] | |
|
| LayoutAlignment.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
||||||
|
| SkiaContextMenu.cs | [x] | **VERIFIED 2026-01-01** - Logic matches decompiled |
|
||||||
| SkiaDatePicker.cs | [x] | **VERIFIED 2026-01-01** - Date=OneWay, all others=TwoWay |
|
| SkiaDatePicker.cs | [x] | **VERIFIED 2026-01-01** - Date=OneWay, all others=TwoWay |
|
||||||
| SkiaEditor.cs | [x] | **FIXED 2026-01-01** - All BindingModes corrected (Text=OneWay, others=TwoWay) |
|
| 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 |
|
| SkiaEntry.cs | [x] | **FIXED 2026-01-01** - TextProperty BindingMode.OneWay, others TwoWay |
|
||||||
| SkiaFlexLayout.cs | [ ] | |
|
| SkiaFlexLayout.cs | [x] | **VERIFIED 2026-01-01** - Logic matches decompiled |
|
||||||
| SkiaFlyoutPage.cs | [ ] | |
|
| SkiaFlyoutPage.cs | [x] | **FIXED 2026-01-01** - Removed embedded FlyoutLayoutBehavior (now separate file) |
|
||||||
| SkiaGraphicsView.cs | [ ] | |
|
| FlyoutLayoutBehavior.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
||||||
|
| SkiaGraphicsView.cs | [x] | **VERIFIED 2026-01-01** - Logic matches decompiled |
|
||||||
| SkiaImage.cs | [x] | **VERIFIED 2026-01-01** - No BindableProperties, logic matches |
|
| SkiaImage.cs | [x] | **VERIFIED 2026-01-01** - No BindableProperties, logic matches |
|
||||||
| SkiaImageButton.cs | [ ] | |
|
| SkiaImageButton.cs | [x] | **FIXED 2026-01-01** - Added SVG support, multi-path search matching decompiled |
|
||||||
| SkiaIndicatorView.cs | [ ] | |
|
| SkiaIndicatorView.cs | [x] | **FIXED 2026-01-01** - Removed embedded IndicatorShape (now separate file) |
|
||||||
|
| IndicatorShape.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
||||||
| SkiaItemsView.cs | [x] | Added GetItemView() method |
|
| SkiaItemsView.cs | [x] | Added GetItemView() method |
|
||||||
| SkiaLabel.cs | [x] | **FIXED 2026-01-01** - All BindingModes TwoWay |
|
| SkiaLabel.cs | [x] | **FIXED 2026-01-01** - All BindingModes TwoWay |
|
||||||
| SkiaLayoutView.cs | [x] | **FIXED 2026-01-01** - All BindingModes TwoWay (Spacing, Padding, ClipToBounds, Orientation, RowSpacing, ColumnSpacing) |
|
| SkiaLayoutView.cs | [x] | **FIXED 2026-01-01** - All BindingModes TwoWay (Spacing, Padding, ClipToBounds, Orientation, RowSpacing, ColumnSpacing) |
|
||||||
| SkiaMenuBar.cs | [ ] | Contains MenuItem, MenuBarItem |
|
| SkiaMenuBar.cs | [x] | **FIXED 2026-01-01** - Removed embedded MenuBarItem, MenuItem, SkiaMenuFlyout, MenuItemClickedEventArgs |
|
||||||
| SkiaNavigationPage.cs | [ ] | |
|
| MenuBarItem.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
||||||
|
| MenuItem.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
||||||
|
| SkiaMenuFlyout.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
||||||
|
| MenuItemClickedEventArgs.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
||||||
|
| SkiaNavigationPage.cs | [x] | **FIXED 2026-01-01** - Added LinuxApplication.IsGtkMode check, removed embedded NavigationEventArgs |
|
||||||
|
| NavigationEventArgs.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
||||||
| SkiaPage.cs | [x] | Added SkiaToolbarItem.Icon property |
|
| SkiaPage.cs | [x] | Added SkiaToolbarItem.Icon property |
|
||||||
| SkiaPicker.cs | [x] | FIXED - SelectedIndex=OneWay, all others=TwoWay (was missing) |
|
| SkiaPicker.cs | [x] | FIXED - SelectedIndex=OneWay, all others=TwoWay (was missing) |
|
||||||
| SkiaProgressBar.cs | [x] | Verified - Progress=OneWay, rest TwoWay, logic matches |
|
| SkiaProgressBar.cs | [x] | Verified - Progress=OneWay, rest TwoWay, logic matches |
|
||||||
| SkiaRadioButton.cs | [x] | **FIXED 2026-01-01** - IsChecked=OneWay, all others=TwoWay |
|
| SkiaRadioButton.cs | [x] | **FIXED 2026-01-01** - IsChecked=OneWay, all others=TwoWay |
|
||||||
| SkiaRefreshView.cs | [ ] | |
|
| SkiaRefreshView.cs | [x] | **FIXED 2026-01-01** - Added ICommand support (Command, CommandParameter) matching decompiled |
|
||||||
| SkiaScrollView.cs | [x] | **FIXED 2026-01-01** - All BindingModes TwoWay |
|
| SkiaScrollView.cs | [x] | **FIXED 2026-01-01** - All BindingModes TwoWay |
|
||||||
| SkiaSearchBar.cs | [x] | **VERIFIED 2026-01-01** - No BindableProperties, logic matches |
|
| SkiaSearchBar.cs | [x] | **VERIFIED 2026-01-01** - No BindableProperties, logic matches |
|
||||||
| SkiaShell.cs | [x] | **FIXED 2026-01-01** - Added FlyoutTextColor, ContentBackgroundColor, route registration, query parameters, OnScroll |
|
| 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) |
|
| SkiaSlider.cs | [x] | FIXED - Value=OneWay, rest TwoWay (agent had inverted all) |
|
||||||
| SkiaStepper.cs | [x] | **FIXED 2026-01-01** - Value=OneWay, all others=TwoWay |
|
| SkiaStepper.cs | [x] | **FIXED 2026-01-01** - Value=OneWay, all others=TwoWay |
|
||||||
| SkiaSwipeView.cs | [ ] | |
|
| SkiaSwipeView.cs | [x] | **FIXED 2026-01-01** - Removed embedded SwipeItem, SwipeDirection, SwipeMode, SwipeStartedEventArgs, SwipeEndedEventArgs |
|
||||||
|
| SwipeItem.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
||||||
|
| SwipeDirection.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
||||||
|
| SwipeMode.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
||||||
|
| SwipeStartedEventArgs.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
||||||
|
| SwipeEndedEventArgs.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
||||||
| SkiaSwitch.cs | [x] | FIXED - IsOn=OneWay (agent had TwoWay) |
|
| SkiaSwitch.cs | [x] | FIXED - IsOn=OneWay (agent had TwoWay) |
|
||||||
| SkiaTabbedPage.cs | [ ] | |
|
| SkiaTabbedPage.cs | [x] | **FIXED 2026-01-01** - Removed embedded TabItem (now separate file) |
|
||||||
| SkiaTemplatedView.cs | [ ] | |
|
| TabItem.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
||||||
|
| SkiaTemplatedView.cs | [x] | **FIXED 2026-01-01** - Added missing using statements (Shapes, Graphics) |
|
||||||
| SkiaTimePicker.cs | [x] | **FIXED 2026-01-01** - Time=OneWay, all others=TwoWay |
|
| SkiaTimePicker.cs | [x] | **FIXED 2026-01-01** - Time=OneWay, all others=TwoWay |
|
||||||
| SkiaView.cs | [x] | Made Arrange() virtual |
|
| SkiaView.cs | [x] | Made Arrange() virtual |
|
||||||
| SkiaVisualStateManager.cs | [ ] | |
|
| SkiaVisualStateManager.cs | [x] | **FIXED 2026-01-01** - Removed embedded SkiaVisualStateGroupList, SkiaVisualStateGroup, SkiaVisualState, SkiaVisualStateSetter |
|
||||||
|
| SkiaVisualStateGroupList.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
||||||
|
| SkiaVisualStateGroup.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
||||||
|
| SkiaVisualState.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
||||||
|
| SkiaVisualStateSetter.cs | [x] | **ADDED 2026-01-01** - Created as separate file |
|
||||||
| SkiaWebView.cs | [x] | **FIXED 2026-01-01** - Full X11 embedding, position tracking, hardware accel, load callbacks |
|
| SkiaWebView.cs | [x] | **FIXED 2026-01-01** - Full X11 embedding, position tracking, hardware accel, load callbacks |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
Reference in New Issue
Block a user