Merge pull request #40226 from bruvzg/deep_exclusive_child_fix

Fix exclusive child focus grab, when there are more than two child windows.
This commit is contained in:
Rémi Verschelde 2020-07-09 11:09:33 +02:00 committed by GitHub
commit 25858f3607
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 1 deletions

View File

@ -893,7 +893,12 @@ void Window::_window_input(const Ref<InputEvent> &p_ev) {
} }
if (exclusive_child != nullptr) { if (exclusive_child != nullptr) {
exclusive_child->grab_focus(); Window *focus_target = exclusive_child;
while (focus_target->exclusive_child != nullptr) {
focus_target->grab_focus();
focus_target = focus_target->exclusive_child;
}
focus_target->grab_focus();
if (!is_embedding_subwindows()) { //not embedding, no need for event if (!is_embedding_subwindows()) { //not embedding, no need for event
return; return;