mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 09:47:22 +13:00
Move auto resize canvas method to shape manager
This commit is contained in:
parent
215d10006f
commit
eb2aa5a1e2
2 changed files with 21 additions and 17 deletions
|
@ -23,12 +23,8 @@ You should have received a copy of the GNU General Public License
|
|||
|
||||
#endregion License Information (GPL v3)
|
||||
|
||||
using ShareX.HelpersLib;
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace ShareX.ScreenCaptureLib
|
||||
{
|
||||
|
@ -94,20 +90,9 @@ protected void DrawImage(Graphics g)
|
|||
|
||||
public override void OnMoved()
|
||||
{
|
||||
Rectangle canvas = Manager.Form.CanvasRectangle;
|
||||
Rectangle combinedImageRectangle = Manager.Shapes.OfType<ImageDrawingShape>().Select(x => x.Rectangle).Combine();
|
||||
|
||||
if (!canvas.Contains(combinedImageRectangle))
|
||||
if (Manager.Form.IsEditorMode)
|
||||
{
|
||||
Padding margin = new Padding(Math.Max(0, canvas.X - combinedImageRectangle.X), Math.Max(0, canvas.Y - combinedImageRectangle.Y),
|
||||
Math.Max(0, combinedImageRectangle.Right - canvas.Right), Math.Max(0, combinedImageRectangle.Bottom - canvas.Bottom));
|
||||
Image img = ImageHelpers.AddCanvas(Manager.Form.Canvas, margin);
|
||||
|
||||
if (img != null)
|
||||
{
|
||||
Manager.Form.CanvasRectangle = Manager.Form.CanvasRectangle.LocationOffset(-margin.Left, -margin.Top);
|
||||
Manager.UpdateCanvas(img, false);
|
||||
}
|
||||
Manager.AutoResizeCanvas();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1747,6 +1747,25 @@ private void ChangeCanvasSize()
|
|||
Form.Resume();
|
||||
}
|
||||
|
||||
public void AutoResizeCanvas()
|
||||
{
|
||||
Rectangle canvas = Form.CanvasRectangle;
|
||||
Rectangle combinedImageRectangle = Shapes.OfType<ImageDrawingShape>().Select(x => x.Rectangle).Combine();
|
||||
|
||||
if (!canvas.Contains(combinedImageRectangle))
|
||||
{
|
||||
Padding margin = new Padding(Math.Max(0, canvas.X - combinedImageRectangle.X), Math.Max(0, canvas.Y - combinedImageRectangle.Y),
|
||||
Math.Max(0, combinedImageRectangle.Right - canvas.Right), Math.Max(0, combinedImageRectangle.Bottom - canvas.Bottom));
|
||||
Image img = ImageHelpers.AddCanvas(Form.Canvas, margin);
|
||||
|
||||
if (img != null)
|
||||
{
|
||||
Form.CanvasRectangle = Form.CanvasRectangle.LocationOffset(-margin.Left, -margin.Top);
|
||||
UpdateCanvas(img, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void AddCropTool()
|
||||
{
|
||||
CurrentTool = ShapeType.ToolCrop;
|
||||
|
|
Loading…
Reference in a new issue