Merge pull request #49553 from timothyqiu/viewport-outside-tree

Fix Viewport crashes when not in tree
This commit is contained in:
Rémi Verschelde 2021-06-13 10:40:37 +02:00 committed by GitHub
commit 1003054134
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2547,6 +2547,8 @@ void Viewport::_gui_remove_control(Control *p_control) {
} }
Window *Viewport::get_base_window() const { Window *Viewport::get_base_window() const {
ERR_FAIL_COND_V(!is_inside_tree(), nullptr);
Viewport *v = const_cast<Viewport *>(this); Viewport *v = const_cast<Viewport *>(this);
Window *w = Object::cast_to<Window>(v); Window *w = Object::cast_to<Window>(v);
while (!w) { while (!w) {
@ -3336,6 +3338,7 @@ bool Viewport::is_input_handled() const {
return local_input_handled; return local_input_handled;
} else { } else {
const Viewport *vp = this; const Viewport *vp = this;
ERR_FAIL_COND_V(!is_inside_tree(), false);
while (true) { while (true) {
if (Object::cast_to<Window>(vp)) { if (Object::cast_to<Window>(vp)) {
break; break;