Ver Fonte

[Button] Do not include internal margins into base button minimum size.

bruvzg há 1 ano atrás
pai
commit
35b4b5f779
1 ficheiros alterados com 2 adições e 15 exclusões
  1. 2 15
      scene/gui/button.cpp

+ 2 - 15
scene/gui/button.cpp

@@ -487,6 +487,8 @@ Size2 Button::_fit_icon_size(const Size2 &p_size) const {
 }
 
 Size2 Button::get_minimum_size_for_text_and_icon(const String &p_text, Ref<Texture2D> p_icon) const {
+	// Do not include `_internal_margin`, it's already added in the `get_minimum_size` overrides.
+
 	Ref<TextParagraph> paragraph;
 	if (p_text.is_empty()) {
 		paragraph = text_buf;
@@ -500,21 +502,6 @@ Size2 Button::get_minimum_size_for_text_and_icon(const String &p_text, Ref<Textu
 		minsize.width = 0;
 	}
 
-	float left_internal_margin_with_h_separation = _internal_margin[SIDE_LEFT];
-	float right_internal_margin_with_h_separation = _internal_margin[SIDE_RIGHT];
-	{ // The width reserved for internal element in derived classes (and h_separation if needed).
-
-		if (_internal_margin[SIDE_LEFT] > 0.0f) {
-			left_internal_margin_with_h_separation += theme_cache.h_separation;
-		}
-
-		if (_internal_margin[SIDE_RIGHT] > 0.0f) {
-			right_internal_margin_with_h_separation += theme_cache.h_separation;
-		}
-
-		minsize.width += left_internal_margin_with_h_separation + right_internal_margin_with_h_separation; // The size after the internal element is stripped.
-	}
-
 	if (!expand_icon && p_icon.is_valid()) {
 		Size2 icon_size = _fit_icon_size(p_icon->get_size());
 		if (vertical_icon_alignment == VERTICAL_ALIGNMENT_CENTER) {