using Avalonia; using Avalonia.Controls; using Avalonia.Input; using Avalonia.Interactivity; using Avalonia.VisualTree; using ClaudeDo.Ui.ViewModels.Islands; namespace ClaudeDo.Ui.Views.Islands; public partial class TasksIslandView : UserControl { private static readonly DataFormat TaskRowFormat = DataFormat.CreateStringApplicationFormat("claudedo-task-row"); public TasksIslandView() { InitializeComponent(); AddHandler(PointerPressedEvent, OnTunnelPointerPressed, RoutingStrategies.Tunnel); DataContextChanged += (_, _) => { if (DataContext is TasksIslandViewModel vm) vm.FocusAddTaskRequested += (_, _) => AddTaskBox.Focus(); }; } private async void OnTunnelPointerPressed(object? sender, PointerPressedEventArgs e) { if (DataContext is not TasksIslandViewModel vm) return; if (e.Source is not Visual src) return; var button = src as Button ?? src.FindAncestorOfType