mirror of
https://github.com/greenshot/greenshot
synced 2025-08-21 22:13:23 -07:00
Stop passing Surface in to DrawableContainer
(cherry picked from commit ee435c90836a3b008768a8c5d722590f7602120f)
This commit is contained in:
parent
489862f812
commit
c2b4a58644
3 changed files with 13 additions and 11 deletions
|
@ -22,6 +22,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
|
using System.Drawing;
|
||||||
using System.Drawing.Drawing2D;
|
using System.Drawing.Drawing2D;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using Dapplo.Windows.Common.Structs;
|
using Dapplo.Windows.Common.Structs;
|
||||||
|
@ -133,6 +134,6 @@ namespace Greenshot.Base.Interfaces.Drawing
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="direction">Direction in which to move the container.</param>
|
/// <param name="direction">Direction in which to move the container.</param>
|
||||||
/// <param name="surface">The surface the container belongs to.</param>
|
/// <param name="surface">The surface the container belongs to.</param>
|
||||||
void SnapToEdge(Direction direction, ISurface surface);
|
void SnapToEdge(Direction direction, Size surfaceSize);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -690,10 +690,9 @@ namespace Greenshot.Editor.Drawing
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="direction">Direction in which to move the container.</param>
|
/// <param name="direction">Direction in which to move the container.</param>
|
||||||
/// <param name="surface">The surface the container belongs to.</param>
|
/// <param name="surface">The surface the container belongs to.</param>
|
||||||
public void SnapToEdge(Direction direction, ISurface surface)
|
public void SnapToEdge(Direction direction, Size surfaceSize)
|
||||||
{
|
{
|
||||||
Size surfaceBounds = new(surface.Image.Width, surface.Image.Height);
|
NativeRectFloat newBounds = GetLocationAfterSnap(direction, this.Bounds, surfaceSize);
|
||||||
NativeRectFloat newBounds = GetLocationAfterSnap(direction, this.Bounds, surfaceBounds);
|
|
||||||
|
|
||||||
this.MakeBoundsChangeUndoable(allowMerge: false);
|
this.MakeBoundsChangeUndoable(allowMerge: false);
|
||||||
this.ApplyBounds(newBounds);
|
this.ApplyBounds(newBounds);
|
||||||
|
|
|
@ -922,9 +922,9 @@ namespace Greenshot.Editor.Drawing
|
||||||
///
|
///
|
||||||
public void SnapAllToEdge(Direction direction, ISurface surface)
|
public void SnapAllToEdge(Direction direction, ISurface surface)
|
||||||
{
|
{
|
||||||
foreach (IDrawableContainer item in this)
|
foreach (IDrawableContainer container in this)
|
||||||
{
|
{
|
||||||
item.SnapToEdge(direction, surface);
|
SnapContainerToEdge(direction, surface, container);
|
||||||
}
|
}
|
||||||
surface.DeselectAllElements();
|
surface.DeselectAllElements();
|
||||||
}
|
}
|
||||||
|
@ -939,17 +939,19 @@ namespace Greenshot.Editor.Drawing
|
||||||
{
|
{
|
||||||
Expansion expansion = GetExpansionFromSize(direction, targetElement.Size);
|
Expansion expansion = GetExpansionFromSize(direction, targetElement.Size);
|
||||||
|
|
||||||
targetElement.SnapToEdge(direction, surface);
|
|
||||||
surface.ResizeCanvas(expansion);
|
surface.ResizeCanvas(expansion);
|
||||||
|
|
||||||
if (direction == Direction.LEFT || direction == Direction.RIGHT)
|
SnapContainerToEdge(direction, surface, targetElement);
|
||||||
targetElement.SnapToEdge(Direction.TOP, surface);
|
|
||||||
else if (direction == Direction.TOP || direction == Direction.BOTTOM)
|
|
||||||
targetElement.SnapToEdge(Direction.LEFT, surface);
|
|
||||||
|
|
||||||
surface.DeselectAllElements();
|
surface.DeselectAllElements();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SnapContainerToEdge(Direction direction, ISurface surface, IDrawableContainer targetElement)
|
||||||
|
{
|
||||||
|
Size surfaceBounds = new(surface.Image.Width, surface.Image.Height);
|
||||||
|
targetElement.SnapToEdge(direction, surfaceBounds);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Calculate the directional expansion needed to accommodate an element of the given size.
|
/// Calculate the directional expansion needed to accommodate an element of the given size.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue