diff options
Diffstat (limited to 'CruUI/ui/layout_base.h')
-rw-r--r-- | CruUI/ui/layout_base.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/CruUI/ui/layout_base.h b/CruUI/ui/layout_base.h index 9bbbc9fd..409c2875 100644 --- a/CruUI/ui/layout_base.h +++ b/CruUI/ui/layout_base.h @@ -85,7 +85,21 @@ namespace cru bool Validate() const { - return size.Validate() && max_size.Validate() && min_size.Validate(); + if (!(size.Validate() && max_size.Validate() && min_size.Validate())) + return false; + + auto&& f = [](const std::optional<float> max_length, const std::optional<float> min_length) -> bool + { + return max_length.has_value() && min_length.has_value() && max_length.value() < min_length.value(); + }; + + if (!f(max_size.width, min_size.width)) + return false; + + if (!f(max_size.height, min_size.height)) + return false; + + return true; } MeasureSize size; |