diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp index 21ff052a3f3..e8f3d581aca 100644 --- a/scene/gui/control.cpp +++ b/scene/gui/control.cpp @@ -1903,7 +1903,7 @@ Control *Control::find_next_valid_focus() const { } } - if (next_child == from) { // No next control. + if (next_child == from || next_child == this) { // No next control. return (get_focus_mode() == FOCUS_ALL) ? next_child : nullptr; } if (next_child) { @@ -1987,7 +1987,7 @@ Control *Control::find_prev_valid_focus() const { } } - if (prev_child == from) { // No prev control. + if (prev_child == from || prev_child == this) { // No prev control. return (get_focus_mode() == FOCUS_ALL) ? prev_child : nullptr; }