Verify Views files against decompiled, extract embedded types
Fixed files: - SkiaImageButton.cs: Added SVG support with multi-path search - SkiaNavigationPage.cs: Added LinuxApplication.IsGtkMode check - SkiaRefreshView.cs: Added ICommand support (Command, CommandParameter) - SkiaTemplatedView.cs: Added missing using statements Extracted embedded types to separate files (matching decompiled pattern): - From SkiaMenuBar.cs: MenuBarItem, MenuItem, SkiaMenuFlyout, MenuItemClickedEventArgs - From SkiaNavigationPage.cs: NavigationEventArgs - From SkiaTabbedPage.cs: TabItem - From SkiaVisualStateManager.cs: SkiaVisualStateGroupList, SkiaVisualStateGroup, SkiaVisualState, SkiaVisualStateSetter - From SkiaSwipeView.cs: SwipeItem, SwipeStartedEventArgs, SwipeEndedEventArgs - From SkiaFlyoutPage.cs: FlyoutLayoutBehavior (already separate) - From SkiaIndicatorView.cs: IndicatorShape (already separate) - From SkiaBorder.cs: SkiaFrame - From SkiaCarouselView.cs: PositionChangedEventArgs - From SkiaCollectionView.cs: SkiaSelectionMode, ItemsLayoutOrientation - From SkiaContentPresenter.cs: LayoutAlignment Verified matching decompiled: - SkiaContextMenu.cs, SkiaFlexLayout.cs, SkiaGraphicsView.cs Build: 0 errors 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,8 +1,12 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.Maui.Platform.Linux;
|
||||
using SkiaSharp;
|
||||
using Microsoft.Maui.Graphics;
|
||||
|
||||
namespace Microsoft.Maui.Platform;
|
||||
|
||||
@@ -89,6 +93,12 @@ public class SkiaNavigationPage : SkiaView
|
||||
{
|
||||
if (_isAnimating) return;
|
||||
|
||||
// Disable animation in GTK mode
|
||||
if (LinuxApplication.IsGtkMode)
|
||||
{
|
||||
animated = false;
|
||||
}
|
||||
|
||||
if (_currentPage != null)
|
||||
{
|
||||
_currentPage.OnDisappearing();
|
||||
@@ -108,9 +118,12 @@ public class SkiaNavigationPage : SkiaView
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("[SkiaNavigationPage] Push (no animation): setting _currentPage to " + page.Title);
|
||||
_currentPage = page;
|
||||
_currentPage.OnAppearing();
|
||||
Console.WriteLine("[SkiaNavigationPage] Push: calling Invalidate");
|
||||
Invalidate();
|
||||
Console.WriteLine("[SkiaNavigationPage] Push: Invalidate called, _currentPage is now " + _currentPage?.Title);
|
||||
}
|
||||
|
||||
Pushed?.Invoke(this, new NavigationEventArgs(page));
|
||||
@@ -120,6 +133,12 @@ public class SkiaNavigationPage : SkiaView
|
||||
{
|
||||
if (_isAnimating || _navigationStack.Count == 0) return null;
|
||||
|
||||
// Disable animation in GTK mode
|
||||
if (LinuxApplication.IsGtkMode)
|
||||
{
|
||||
animated = false;
|
||||
}
|
||||
|
||||
var poppedPage = _currentPage;
|
||||
poppedPage?.OnDisappearing();
|
||||
|
||||
@@ -302,6 +321,7 @@ public class SkiaNavigationPage : SkiaView
|
||||
else if (_currentPage != null)
|
||||
{
|
||||
// Draw current page normally
|
||||
Console.WriteLine("[SkiaNavigationPage] OnDraw: drawing _currentPage=" + _currentPage.Title);
|
||||
_currentPage.Bounds = bounds;
|
||||
_currentPage.Draw(canvas);
|
||||
|
||||
@@ -436,16 +456,3 @@ public class SkiaNavigationPage : SkiaView
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Event args for navigation events.
|
||||
/// </summary>
|
||||
public class NavigationEventArgs : EventArgs
|
||||
{
|
||||
public SkiaPage Page { get; }
|
||||
|
||||
public NavigationEventArgs(SkiaPage page)
|
||||
{
|
||||
Page = page;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user