diff --git a/ShareX.HelpersLib/Forms/GradientPickerForm.cs b/ShareX.HelpersLib/Forms/GradientPickerForm.cs index a9023e608..37f67c6f6 100644 --- a/ShareX.HelpersLib/Forms/GradientPickerForm.cs +++ b/ShareX.HelpersLib/Forms/GradientPickerForm.cs @@ -32,6 +32,9 @@ namespace ShareX.HelpersLib { public partial class GradientPickerForm : Form { + public delegate void GradientChangedEventHandler(); + public event GradientChangedEventHandler GradientChanged; + public GradientInfo Gradient { get; private set; } private bool isReady; @@ -48,6 +51,11 @@ public GradientPickerForm(GradientInfo gradient) UpdateGradientList(true); } + protected virtual void OnGradientChanged() + { + GradientChanged?.Invoke(); + } + private void AddPresets() { GradientInfo[] gradients = new GradientInfo[] @@ -497,6 +505,8 @@ private void UpdatePreview() Bitmap bmp = Gradient.CreateGradientPreview(pbPreview.ClientRectangle.Width, pbPreview.ClientRectangle.Height, true); pbPreview.Image?.Dispose(); pbPreview.Image = bmp; + + OnGradientChanged(); } } diff --git a/ShareX.MediaLib/Forms/ImageBeautifierForm.cs b/ShareX.MediaLib/Forms/ImageBeautifierForm.cs index c348079e8..9aced1101 100644 --- a/ShareX.MediaLib/Forms/ImageBeautifierForm.cs +++ b/ShareX.MediaLib/Forms/ImageBeautifierForm.cs @@ -24,12 +24,12 @@ #endregion License Information (GPL v3) using ShareX.HelpersLib; +using ShareX.MediaLib.Properties; using System; using System.Diagnostics; using System.Drawing; using System.Threading.Tasks; using System.Windows.Forms; -using ShareX.MediaLib.Properties; namespace ShareX.MediaLib { @@ -269,15 +269,27 @@ private async void pbBackground_Click(object sender, EventArgs e) switch (Options.BackgroundType) { case ImageBeautifierBackgroundType.Gradient: - using (GradientPickerForm gradientPickerForm = new GradientPickerForm(Options.BackgroundGradient.Copy())) + GradientInfo currentGradient = Options.BackgroundGradient; + + using (GradientPickerForm gradientPickerForm = new GradientPickerForm(currentGradient.Copy())) { + gradientPickerForm.GradientChanged += async () => + { + Options.BackgroundGradient = gradientPickerForm.Gradient; + await UpdatePreview(true); + }; + if (gradientPickerForm.ShowDialog() == DialogResult.OK) { Options.BackgroundGradient = gradientPickerForm.Gradient; UpdateBackgroundPreview(); - - await UpdatePreview(); } + else + { + Options.BackgroundGradient = currentGradient; + } + + await UpdatePreview(); } break; case ImageBeautifierBackgroundType.Color: