Fixed issues with the enum label losing it's number, fixed this... almost. Do not change the z-Order of the label.

This commit is contained in:
RKrom 2014-06-11 23:27:13 +02:00
parent efd144ad0d
commit 87406d90da
3 changed files with 20 additions and 5 deletions

View file

@ -633,7 +633,7 @@ namespace Greenshot.Drawing {
public virtual void HandleMouseUp(int x, int y) {
}
private void SwitchParent(Surface newParent) {
protected virtual void SwitchParent(Surface newParent) {
if (_parent != null && _grippers != null) {
for (int i=0; i<_grippers.Length; i++) {
_parent.Controls.Remove(_grippers[i]);

View file

@ -53,8 +53,23 @@ namespace Greenshot.Drawing {
_stringFormat = new StringFormat();
_stringFormat.Alignment = StringAlignment.Center;
_stringFormat.LineAlignment = StringAlignment.Center;
}
}
/// <summary>
/// Make sure the StepLabel is addded to the parent after deserializing
/// by removing it from the current parent and added it to the new
/// </summary>
/// <param name="newParent"></param>
protected override void SwitchParent(Surface newParent) {
if (Parent != null) {
Parent.RemoveStepLabel(this);
}
base.SwitchParent(newParent);
if (Parent != null) {
Parent.AddStepLabel(this);
}
}
public override Size DefaultSize {
get {
return new Size(30, 30);

View file

@ -208,10 +208,10 @@ namespace Greenshot.Drawing {
/// <summary>
/// all stepLabels for the surface, needed with serialization
/// </summary>
private readonly LinkedList<IDrawableContainer> _stepLabels = new LinkedList<IDrawableContainer>();
private List<IDrawableContainer> _stepLabels = new List<IDrawableContainer>();
public void AddStepLabel(IDrawableContainer stepLabel) {
_stepLabels.AddLast(stepLabel);
_stepLabels.Add(stepLabel);
}
public void RemoveStepLabel(IDrawableContainer stepLabel) {
_stepLabels.Remove(stepLabel);