Skip to content

Commit a328952

Browse files
committed
Fix PopupMenu.id_focused signal using index as ID
1 parent db66bd3 commit a328952

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

scene/gui/option_button.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ bool OptionButton::_set(const StringName &p_name, const Variant &p_value) {
178178
}
179179

180180
void OptionButton::_focused(int p_which) {
181-
emit_signal(SNAME("item_focused"), p_which);
181+
emit_signal(SNAME("item_focused"), popup->get_item_index(p_which));
182182
}
183183

184184
void OptionButton::_selected(int p_which) {

scene/gui/popup_menu.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,7 @@ void PopupMenu::_input_from_window_internal(const Ref<InputEvent> &p_event) {
474474
for (int i = search_from; i < items.size(); i++) {
475475
if (!items[i].separator && !items[i].disabled) {
476476
mouse_over = i;
477-
emit_signal(SNAME("id_focused"), i);
477+
emit_signal(SNAME("id_focused"), items[i].id);
478478
scroll_to_item(i);
479479
control->queue_redraw();
480480
set_input_as_handled();
@@ -488,7 +488,7 @@ void PopupMenu::_input_from_window_internal(const Ref<InputEvent> &p_event) {
488488
for (int i = 0; i < search_from; i++) {
489489
if (!items[i].separator && !items[i].disabled) {
490490
mouse_over = i;
491-
emit_signal(SNAME("id_focused"), i);
491+
emit_signal(SNAME("id_focused"), items[i].id);
492492
scroll_to_item(i);
493493
control->queue_redraw();
494494
set_input_as_handled();
@@ -512,7 +512,7 @@ void PopupMenu::_input_from_window_internal(const Ref<InputEvent> &p_event) {
512512
for (int i = search_from; i >= 0; i--) {
513513
if (!items[i].separator && !items[i].disabled) {
514514
mouse_over = i;
515-
emit_signal(SNAME("id_focused"), i);
515+
emit_signal(SNAME("id_focused"), items[i].id);
516516
scroll_to_item(i);
517517
control->queue_redraw();
518518
set_input_as_handled();
@@ -526,7 +526,7 @@ void PopupMenu::_input_from_window_internal(const Ref<InputEvent> &p_event) {
526526
for (int i = items.size() - 1; i >= search_from; i--) {
527527
if (!items[i].separator && !items[i].disabled) {
528528
mouse_over = i;
529-
emit_signal(SNAME("id_focused"), i);
529+
emit_signal(SNAME("id_focused"), items[i].id);
530530
scroll_to_item(i);
531531
control->queue_redraw();
532532
set_input_as_handled();
@@ -692,7 +692,7 @@ void PopupMenu::_input_from_window_internal(const Ref<InputEvent> &p_event) {
692692

693693
if (items[i].text.findn(search_string) == 0) {
694694
mouse_over = i;
695-
emit_signal(SNAME("id_focused"), i);
695+
emit_signal(SNAME("id_focused"), items[i].id);
696696
scroll_to_item(i);
697697
control->queue_redraw();
698698
set_input_as_handled();
@@ -1091,7 +1091,7 @@ void PopupMenu::_notification(int p_what) {
10911091
for (int i = search_from; i < items.size(); i++) {
10921092
if (!items[i].separator && !items[i].disabled) {
10931093
mouse_over = i;
1094-
emit_signal(SNAME("id_focused"), i);
1094+
emit_signal(SNAME("id_focused"), items[i].id);
10951095
scroll_to_item(i);
10961096
control->queue_redraw();
10971097
match_found = true;
@@ -1104,7 +1104,7 @@ void PopupMenu::_notification(int p_what) {
11041104
for (int i = 0; i < search_from; i++) {
11051105
if (!items[i].separator && !items[i].disabled) {
11061106
mouse_over = i;
1107-
emit_signal(SNAME("id_focused"), i);
1107+
emit_signal(SNAME("id_focused"), items[i].id);
11081108
scroll_to_item(i);
11091109
control->queue_redraw();
11101110
break;
@@ -1124,7 +1124,7 @@ void PopupMenu::_notification(int p_what) {
11241124
for (int i = search_from; i >= 0; i--) {
11251125
if (!items[i].separator && !items[i].disabled) {
11261126
mouse_over = i;
1127-
emit_signal(SNAME("id_focused"), i);
1127+
emit_signal(SNAME("id_focused"), items[i].id);
11281128
scroll_to_item(i);
11291129
control->queue_redraw();
11301130
match_found = true;
@@ -1137,7 +1137,7 @@ void PopupMenu::_notification(int p_what) {
11371137
for (int i = items.size() - 1; i >= search_from; i--) {
11381138
if (!items[i].separator && !items[i].disabled) {
11391139
mouse_over = i;
1140-
emit_signal(SNAME("id_focused"), i);
1140+
emit_signal(SNAME("id_focused"), items[i].id);
11411141
scroll_to_item(i);
11421142
control->queue_redraw();
11431143
break;

0 commit comments

Comments
 (0)