mirror of
https://github.com/godotengine/godot.git
synced 2026-01-05 06:11:29 +03:00
Merge pull request #80780 from HolonProduction/sub-window-focus-crash
Fix crash when hiding subwindow during popup of new subwindow
This commit is contained in:
@@ -368,6 +368,7 @@ void Viewport::_sub_window_grab_focus(Window *p_window) {
|
||||
return;
|
||||
}
|
||||
|
||||
// The index needs to be update before every usage in case an event callback changed the window list.
|
||||
int index = _sub_window_find(p_window);
|
||||
ERR_FAIL_COND(index == -1);
|
||||
|
||||
@@ -379,6 +380,8 @@ void Viewport::_sub_window_grab_focus(Window *p_window) {
|
||||
gui.subwindow_drag = SUB_WINDOW_DRAG_DISABLED;
|
||||
}
|
||||
// Can only move to foreground, but no focus granted.
|
||||
index = _sub_window_find(p_window);
|
||||
ERR_FAIL_COND(index == -1);
|
||||
SubWindow sw = gui.sub_windows[index];
|
||||
gui.sub_windows.remove_at(index);
|
||||
gui.sub_windows.push_back(sw);
|
||||
@@ -406,6 +409,8 @@ void Viewport::_sub_window_grab_focus(Window *p_window) {
|
||||
gui.subwindow_focused->_event_callback(DisplayServer::WINDOW_EVENT_FOCUS_IN);
|
||||
|
||||
{ // Move to foreground.
|
||||
index = _sub_window_find(p_window);
|
||||
ERR_FAIL_COND(index == -1);
|
||||
SubWindow sw = gui.sub_windows[index];
|
||||
gui.sub_windows.remove_at(index);
|
||||
gui.sub_windows.push_back(sw);
|
||||
|
||||
Reference in New Issue
Block a user