diff options
author | Markus Sauermann <6299227+Sauermann@users.noreply.github.com> | 2022-10-05 23:26:41 +0200 |
---|---|---|
committer | Markus Sauermann <6299227+Sauermann@users.noreply.github.com> | 2022-10-05 23:35:44 +0200 |
commit | c0f0f26615990ae90112b94313869f06124f2c13 (patch) | |
tree | fb2d47a5ab7d5359cecc0837a01361b493b68194 | |
parent | ea9bb98f26be8212245f6ff796617901a8b9f3f6 (diff) |
Fix Control not disconnecting signal
If a Control has not parent CanvasItem and is set as top_level, then it does not disconnect from the "size_changed" signal when it leaves the Canvas.
This patch corrects this.
-rw-r--r-- | scene/gui/control.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp index dc9294df6d..290ac39c78 100644 --- a/scene/gui/control.cpp +++ b/scene/gui/control.cpp @@ -2885,8 +2885,8 @@ void Control::_notification(int p_notification) { if (data.parent_canvas_item) { data.parent_canvas_item->disconnect("item_rect_changed", callable_mp(this, &Control::_size_changed)); data.parent_canvas_item = nullptr; - } else if (!is_set_as_top_level()) { - //disconnect viewport + } else { + // Disconnect viewport. Viewport *viewport = get_viewport(); ERR_FAIL_COND(!viewport); viewport->disconnect("size_changed", callable_mp(this, &Control::_size_changed)); |