1
0
Fork 0
mirror of https://github.com/Ellpeck/MLEM.git synced 2024-11-22 20:58:34 +01:00

Fixed auto-navigating panels not scrolling to the center of elements properly

This commit is contained in:
Ell 2022-03-10 18:04:36 +01:00
parent 96f0c51757
commit 0f4e67f20f
2 changed files with 4 additions and 3 deletions

View file

@ -53,6 +53,7 @@ Improvements
Fixes Fixes
- Fixed paragraph links having incorrect hover locations when using special text alignments - Fixed paragraph links having incorrect hover locations when using special text alignments
- Fixed the graphics device's viewport being ignored for mouse and touch queries - Fixed the graphics device's viewport being ignored for mouse and touch queries
- Fixed auto-navigating panels not scrolling to the center of elements properly
Removals Removals
- Marked StyleProp equality members as obsolete - Marked StyleProp equality members as obsolete

View file

@ -79,13 +79,13 @@ namespace MLEM.Ui.Elements {
}; };
// handle automatic element selection, the scroller needs to scroll to the right location // handle automatic element selection, the scroller needs to scroll to the right location
this.OnSelectedElementChanged += (element, otherElement) => { this.OnSelectedElementChanged += (_, e) => {
if (!this.Controls.IsAutoNavMode) if (!this.Controls.IsAutoNavMode)
return; return;
if (otherElement == null || !otherElement.GetParentTree().Contains(this)) if (e == null || !e.GetParentTree().Contains(this))
return; return;
var firstChild = this.Children.First(c => c != this.ScrollBar); var firstChild = this.Children.First(c => c != this.ScrollBar);
this.ScrollBar.CurrentValue = (otherElement.Area.Bottom - firstChild.Area.Top - this.Area.Height / 2) / this.Scale; this.ScrollBar.CurrentValue = (e.UnscrolledArea.Center.Y - firstChild.Area.Height - this.Area.Height / 2) / e.Scale + this.ChildPadding.Value.Height;
}; };
this.AddChild(this.ScrollBar); this.AddChild(this.ScrollBar);
} }