mirror of
https://github.com/ShareX/ShareX.git
synced 2024-06-28 03:00:22 +12:00
Fixed undo/redo bug
This commit is contained in:
parent
69e95870de
commit
692a9e6b0d
|
@ -60,13 +60,13 @@ private ImageEditorMemento GetMementoFromCanvas()
|
|||
{
|
||||
List<BaseShape> shapes = shapeManager.Shapes.Select(x => x.Duplicate()).ToList();
|
||||
Bitmap canvas = (Bitmap)shapeManager.Form.Canvas.Clone();
|
||||
return new ImageEditorMemento(shapes, canvas);
|
||||
return new ImageEditorMemento(shapes, shapeManager.Form.CanvasRectangle, canvas);
|
||||
}
|
||||
|
||||
private ImageEditorMemento GetMementoFromShapes()
|
||||
{
|
||||
List<BaseShape> shapes = shapeManager.Shapes.Select(x => x.Duplicate()).ToList();
|
||||
return new ImageEditorMemento(shapes);
|
||||
return new ImageEditorMemento(shapes, shapeManager.Form.CanvasRectangle);
|
||||
}
|
||||
|
||||
public void CreateCanvasMemento()
|
||||
|
|
|
@ -32,16 +32,13 @@ namespace ShareX.ScreenCaptureLib
|
|||
internal class ImageEditorMemento : IDisposable
|
||||
{
|
||||
public List<BaseShape> Shapes { get; private set; }
|
||||
public RectangleF CanvasRectangle { get; private set; }
|
||||
public Bitmap Canvas { get; private set; }
|
||||
|
||||
public ImageEditorMemento(List<BaseShape> shapes)
|
||||
{
|
||||
Shapes = shapes;
|
||||
}
|
||||
|
||||
public ImageEditorMemento(List<BaseShape> shapes, Bitmap canvas)
|
||||
public ImageEditorMemento(List<BaseShape> shapes, RectangleF canvasRectangle, Bitmap canvas = null)
|
||||
{
|
||||
Shapes = shapes;
|
||||
CanvasRectangle = canvasRectangle;
|
||||
Canvas = canvas;
|
||||
}
|
||||
|
||||
|
|
|
@ -1572,6 +1572,7 @@ public void RestoreState(ImageEditorMemento memento)
|
|||
|
||||
ClearTools();
|
||||
DeselectCurrentShape();
|
||||
MoveAll(Form.CanvasRectangle.X - memento.CanvasRectangle.X, Form.CanvasRectangle.Y - memento.CanvasRectangle.Y);
|
||||
OnImageModified();
|
||||
UpdateMenu();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue