Skip to content

Commit 1176a98

Browse files
committed
fix(Avalonia): ensure tray items work
1 parent 8f86685 commit 1176a98

2 files changed

Lines changed: 60 additions & 6 deletions

File tree

SnapX.Avalonia/App.axaml.cs

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
using SnapX.Core;
2222
using SnapX.Core.Capture;
2323
using SnapX.Core.Job;
24+
using SnapX.Core.Upload;
2425
using SnapX.Core.Utils;
2526
using SnapX.Core.Utils.Native;
2627

@@ -513,19 +514,46 @@ private void NativeMenuItem_SnapX_OnClick(object? Sender, EventArgs E)
513514
NativeMenuAboutSnapXClick(Sender, E);
514515
}
515516

516-
private void NativeMenuItem_Capture_Fullscreen_OnClick(object? Sender, EventArgs E)
517+
private async void NativeMenuItem_Capture_Fullscreen_OnClick(object? Sender, EventArgs E)
517518
{
518-
TaskHelpers.GetScreenshot().CaptureFullscreen();
519+
await Task.Factory.StartNew(
520+
() =>
521+
{
522+
UploadManager.RunImageTask(
523+
TaskHelpers.GetScreenshot().CaptureFullscreen(),
524+
TaskSettings.GetDefaultTaskSettings()
525+
);
526+
},
527+
CancellationToken.None,
528+
TaskCreationOptions.LongRunning,
529+
TaskScheduler.Default
530+
);
519531
}
520532

521-
private void NativeMenuItem_Workflows_CaptureActiveScreen_OnClick(object? Sender, EventArgs E)
533+
private async void NativeMenuItem_Workflows_CaptureActiveScreen_OnClick(object? Sender, EventArgs E)
522534
{
523-
new CaptureActiveMonitor().Capture(TaskSettings.GetDefaultTaskSettings());
535+
await Task.Factory.StartNew(
536+
() =>
537+
{
538+
new CaptureActiveMonitor().Capture(TaskSettings.GetDefaultTaskSettings());
539+
},
540+
CancellationToken.None,
541+
TaskCreationOptions.LongRunning,
542+
TaskScheduler.Default
543+
);
524544
}
525545

526-
private void NativeMenuItem_Workflows_CaptureActiveWindow_OnClick(object? Sender, EventArgs E)
546+
private async void NativeMenuItem_Workflows_CaptureActiveWindow_OnClick(object? Sender, EventArgs E)
527547
{
528-
new CaptureActiveWindow().Capture(TaskSettings.GetDefaultTaskSettings());
548+
await Task.Factory.StartNew(
549+
() =>
550+
{
551+
new CaptureActiveWindow().Capture(TaskSettings.GetDefaultTaskSettings());
552+
},
553+
CancellationToken.None,
554+
TaskCreationOptions.LongRunning,
555+
TaskScheduler.Default
556+
);
529557
}
530558

531559
private void NativeMenuItem_Open_OnClick(object? Sender, EventArgs E)
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
using System.Globalization;
2+
using Avalonia.Data.Converters;
3+
4+
namespace SnapX.Avalonia.Converters;
5+
6+
public class AndBooleanConverter : IMultiValueConverter
7+
{
8+
public object Convert(IList<object?> values, Type targetType, object? parameter, CultureInfo culture)
9+
{
10+
foreach (var value in values)
11+
{
12+
if (value is bool b)
13+
{
14+
if (!b)
15+
return false;
16+
}
17+
else
18+
{
19+
return false;
20+
}
21+
}
22+
23+
return true;
24+
}
25+
}
26+

0 commit comments

Comments
 (0)