diff options
author | TechnoPorg <jonah.janzen@gmail.com> | 2021-11-29 16:36:47 -0700 |
---|---|---|
committer | TechnoPorg <jonah.janzen@gmail.com> | 2021-11-29 16:52:19 -0700 |
commit | acb90ed0201f2964f3b870ad8a93d066cd77c8cf (patch) | |
tree | bf3ea6a77b9d253d9aff9b6194610f80f8a09ea3 | |
parent | 9f46ce86523e01435ad34de467de586485448278 (diff) |
Don't obtain a reference to a subwindow
Fixes the wrong location being accessed after changing the order of embedded windows.
This commit also removes an unused variable.
-rw-r--r-- | scene/main/viewport.cpp | 4 | ||||
-rw-r--r-- | scene/main/viewport.h | 3 |
2 files changed, 2 insertions, 5 deletions
diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index 31e8c20991..9962437284 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -370,8 +370,6 @@ void Viewport::_sub_window_remove(Window *p_window) { void Viewport::_notification(int p_what) { switch (p_what) { case NOTIFICATION_ENTER_TREE: { - gui.embedding_subwindows = gui.embed_subwindows_hint; - if (get_parent()) { parent = get_parent()->get_viewport(); RenderingServer::get_singleton()->viewport_set_parent_viewport(viewport, parent->get_viewport_rid()); @@ -2540,7 +2538,7 @@ bool Viewport::_sub_windows_forward_input(const Ref<InputEvent> &p_event) { if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == MOUSE_BUTTON_LEFT) { bool click_on_window = false; for (int i = gui.sub_windows.size() - 1; i >= 0; i--) { - SubWindow &sw = gui.sub_windows.write[i]; + SubWindow sw = gui.sub_windows.write[i]; // Clicked inside window? diff --git a/scene/main/viewport.h b/scene/main/viewport.h index 1f19ff04c9..d2e54bd4d3 100644 --- a/scene/main/viewport.h +++ b/scene/main/viewport.h @@ -349,7 +349,6 @@ private: int canvas_sort_index = 0; //for sorting items with canvas as root bool dragging = false; bool embed_subwindows_hint = false; - bool embedding_subwindows = false; Window *subwindow_focused = nullptr; SubWindowDrag subwindow_drag = SUB_WINDOW_DRAG_DISABLED; @@ -360,7 +359,7 @@ private: SubWindowResize subwindow_resize_mode; Rect2i subwindow_resize_from_rect; - Vector<SubWindow> sub_windows; + Vector<SubWindow> sub_windows; // Don't obtain references or pointers to the elements, as their location can change. } gui; DefaultCanvasItemTextureFilter default_canvas_item_texture_filter = DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_LINEAR; |