diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/EditorWindow.cs b/src/modules/fancyzones/editor/FancyZonesEditor/EditorWindow.cs index 3672645498..06a2b4ac19 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/EditorWindow.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/EditorWindow.cs @@ -31,25 +31,17 @@ namespace FancyZonesEditor App.FancyZonesEditorIO.SerializeZoneSettings(); - _backToLayoutPicker = false; Close(); - mainEditor.CloseEditor(); } protected void OnClosed(object sender, EventArgs e) { - if (_backToLayoutPicker) - { - App.Overlay.CloseEditor(); - } + App.Overlay.CloseEditor(); } protected void OnCancel(object sender, RoutedEventArgs e) { - _backToLayoutPicker = true; Close(); } - - private bool _backToLayoutPicker = true; } } diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Models/CanvasLayoutModel.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Models/CanvasLayoutModel.cs index 761ad48068..bb4c916337 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Models/CanvasLayoutModel.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/Models/CanvasLayoutModel.cs @@ -91,6 +91,10 @@ namespace FancyZonesEditor.Models { _topLeft = DefaultOffset; } + else if (_topLeft == Zones[Zones.Count - 1].X) + { + _topLeft += OffsetShift; + } Rect workingArea = App.Overlay.WorkArea; int topLeft = (int)App.Overlay.ScaleCoordinateWithCurrentMonitorDpi(_topLeft); @@ -155,7 +159,9 @@ namespace FancyZonesEditor.Models other.Zones.Add(zone); } + other._topLeft = _topLeft; other.SensitivityRadius = SensitivityRadius; + other.UpdateLayout(); } // PersistData diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Models/GridLayoutModel.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Models/GridLayoutModel.cs index cfc2792871..495e8b481a 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Models/GridLayoutModel.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/Models/GridLayoutModel.cs @@ -263,6 +263,8 @@ namespace FancyZonesEditor.Models layout.ShowSpacing = ShowSpacing; layout.Spacing = Spacing; layout.SensitivityRadius = SensitivityRadius; + + layout.FirePropertyChanged(); } // InitTemplateZones