From c33748d954a279edd8c42a58f14efa88719f4111 Mon Sep 17 00:00:00 2001 From: Florian Kothmeier Date: Tue, 27 Jun 2023 16:22:58 +0200 Subject: [PATCH] Fix invalid minimum size for translated messages in option button --- scene/gui/option_button.cpp | 2 +- scene/gui/popup_menu.cpp | 5 +++++ scene/gui/popup_menu.h | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/scene/gui/option_button.cpp b/scene/gui/option_button.cpp index 451ac9410925..71d64c8bffb6 100644 --- a/scene/gui/option_button.cpp +++ b/scene/gui/option_button.cpp @@ -451,7 +451,7 @@ void OptionButton::_refresh_size_cache() { _cached_size = Vector2(); for (int i = 0; i < get_item_count(); i++) { - _cached_size = _cached_size.max(get_minimum_size_for_text_and_icon(get_item_text(i), get_item_icon(i))); + _cached_size = _cached_size.max(get_minimum_size_for_text_and_icon(popup->get_item_xl_text(i), get_item_icon(i))); } update_minimum_size(); } diff --git a/scene/gui/popup_menu.cpp b/scene/gui/popup_menu.cpp index adeaf9a49f4a..94690a493801 100644 --- a/scene/gui/popup_menu.cpp +++ b/scene/gui/popup_menu.cpp @@ -1471,6 +1471,11 @@ String PopupMenu::get_item_text(int p_idx) const { return items[p_idx].text; } +String PopupMenu::get_item_xl_text(int p_idx) const { + ERR_FAIL_INDEX_V(p_idx, items.size(), ""); + return items[p_idx].xl_text; +} + Control::TextDirection PopupMenu::get_item_text_direction(int p_idx) const { ERR_FAIL_INDEX_V(p_idx, items.size(), Control::TEXT_DIRECTION_INHERITED); return items[p_idx].text_direction; diff --git a/scene/gui/popup_menu.h b/scene/gui/popup_menu.h index 572467bf94db..b4655f13ae29 100644 --- a/scene/gui/popup_menu.h +++ b/scene/gui/popup_menu.h @@ -250,6 +250,7 @@ class PopupMenu : public Popup { void toggle_item_checked(int p_idx); String get_item_text(int p_idx) const; + String get_item_xl_text(int p_idx) const; Control::TextDirection get_item_text_direction(int p_idx) const; String get_item_language(int p_idx) const; int get_item_idx_from_text(const String &text) const;