diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ecf16e..fa1ad9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,7 @@ Improvements - Removed LINQ Any and All usage in various methods to improve memory usage - Explicitly disallow creating Paragraphs without fonts to make starting out with MLEM.Ui less confusing - Allow adding Link children to non-Paragraph elements +- Reduce sizing incompatibilities by ignoring percentage-based width and height for elements that set their width and height based on their children Fixes - Fixed a crash if a paragraph has a link formatting code, but no font diff --git a/MLEM.Ui/Elements/Element.cs b/MLEM.Ui/Elements/Element.cs index 689c75e..bf52c46 100644 --- a/MLEM.Ui/Elements/Element.cs +++ b/MLEM.Ui/Elements/Element.cs @@ -693,11 +693,11 @@ namespace MLEM.Ui.Elements { /// The actual size of this element, taking into account protected virtual Vector2 CalcActualSize(RectangleF parentArea) { var ret = new Vector2( - this.size.X > 1 ? this.ScaledSize.X : parentArea.Width * this.size.X, - this.size.Y > 1 ? this.ScaledSize.Y : parentArea.Height * this.size.Y); - if (this.size.X < 0) + this.size.X > 1 && !this.SetWidthBasedOnChildren ? this.ScaledSize.X : parentArea.Width * this.size.X, + this.size.Y > 1 && !this.SetHeightBasedOnChildren ? this.ScaledSize.Y : parentArea.Height * this.size.Y); + if (this.size.X < 0 && !this.SetWidthBasedOnChildren) ret.X = -this.size.X * ret.Y; - if (this.size.Y < 0) + if (this.size.Y < 0 && !this.SetHeightBasedOnChildren) ret.Y = -this.size.Y * ret.X; return ret; }