浏览代码

Merge pull request #93128 from bruvzg/button_internal_margin

[Button] Do not include internal margins into base button minimum size.
Rémi Verschelde 1 年之前
父节点
当前提交
172b4dc57e
共有 1 个文件被更改,包括 2 次插入15 次删除
  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 {
 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;
 	Ref<TextParagraph> paragraph;
 	if (p_text.is_empty()) {
 	if (p_text.is_empty()) {
 		paragraph = text_buf;
 		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;
 		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()) {
 	if (!expand_icon && p_icon.is_valid()) {
 		Size2 icon_size = _fit_icon_size(p_icon->get_size());
 		Size2 icon_size = _fit_icon_size(p_icon->get_size());
 		if (vertical_icon_alignment == VERTICAL_ALIGNMENT_CENTER) {
 		if (vertical_icon_alignment == VERTICAL_ALIGNMENT_CENTER) {