From eca37e8d70fc56bf4a8721cdadc34be935d711ed Mon Sep 17 00:00:00 2001 From: leo Date: Mon, 2 Sep 2024 09:26:06 +0800 Subject: [PATCH] fix: crash when drag & drop on macOS --- src/Views/InteractiveRebase.axaml.cs | 1 + src/Views/LauncherTabBar.axaml.cs | 3 ++- src/Views/Welcome.axaml.cs | 7 ++++--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Views/InteractiveRebase.axaml.cs b/src/Views/InteractiveRebase.axaml.cs index c8d3dd33..14375217 100644 --- a/src/Views/InteractiveRebase.axaml.cs +++ b/src/Views/InteractiveRebase.axaml.cs @@ -43,6 +43,7 @@ namespace SourceGit.Views private void OnRowHeaderDragOver(object sender, DragEventArgs e) { if (DataContext is ViewModels.InteractiveRebase vm && + e.Data.Contains("InteractiveRebaseItem") && e.Data.Get("InteractiveRebaseItem") is ViewModels.InteractiveRebaseItem src && sender is Border { DataContext: ViewModels.InteractiveRebaseItem dst } border && src != dst) diff --git a/src/Views/LauncherTabBar.axaml.cs b/src/Views/LauncherTabBar.axaml.cs index f7b47adc..4f65ab32 100644 --- a/src/Views/LauncherTabBar.axaml.cs +++ b/src/Views/LauncherTabBar.axaml.cs @@ -216,7 +216,8 @@ namespace SourceGit.Views private void DropTab(object sender, DragEventArgs e) { - if (e.Data.Get("MovedTab") is ViewModels.LauncherPage moved && + if (e.Data.Contains("MovedTab") && + e.Data.Get("MovedTab") is ViewModels.LauncherPage moved && sender is Border { DataContext: ViewModels.LauncherPage to } && to != moved) { diff --git a/src/Views/Welcome.axaml.cs b/src/Views/Welcome.axaml.cs index 586b76f3..93e673cd 100644 --- a/src/Views/Welcome.axaml.cs +++ b/src/Views/Welcome.axaml.cs @@ -73,7 +73,7 @@ namespace SourceGit.Views } } - private void OnTreeViewKeyDown(object sender, KeyEventArgs e) + private void OnTreeViewKeyDown(object _, KeyEventArgs e) { if (TreeContainer.SelectedItem is ViewModels.RepositoryNode node && e.Key == Key.Enter) { @@ -163,7 +163,7 @@ namespace SourceGit.Views private void DropOnTreeView(object sender, DragEventArgs e) { - if (e.Data.Get("MovedRepositoryTreeNode") is ViewModels.RepositoryNode moved) + if (e.Data.Contains("MovedRepositoryTreeNode") && e.Data.Get("MovedRepositoryTreeNode") is ViewModels.RepositoryNode moved) { e.Handled = true; ViewModels.Welcome.Instance.MoveNode(moved, null); @@ -224,7 +224,8 @@ namespace SourceGit.Views return; } - if (e.Data.Get("MovedRepositoryTreeNode") is ViewModels.RepositoryNode moved) + if (e.Data.Contains("MovedRepositoryTreeNode") && + e.Data.Get("MovedRepositoryTreeNode") is ViewModels.RepositoryNode moved) { e.Handled = true;