瀏覽代碼

Fix crash when revealing file in floating FileSystem Dock
When selecting "Show in FileSystem" from the context menu of a resource
in the inspector, the engine would crash if the FileSystem dock was
floating because it was trying to focus the FileSystem tab, but floating
docks don't use Tab Containers. This commit makes the FileSystem dock's
window grab focus instead if it's floating.

(cherry picked from commit c4d1513e15e1f3e599030a98cf425177c3d1eb24)

Hayden Leete 2 年之前
父節點
當前提交
7490f89238
共有 1 個文件被更改,包括 6 次插入2 次删除
  1. 6 2
      editor/editor_resource_picker.cpp

+ 6 - 2
editor/editor_resource_picker.cpp

@@ -399,8 +399,12 @@ void EditorResourcePicker::_edit_menu_cbk(int p_which) {
 			file_system_dock->navigate_to_path(edited_resource->get_path());
 
 			// Ensure that the FileSystem dock is visible.
-			TabContainer *tab_container = (TabContainer *)file_system_dock->get_parent_control();
-			tab_container->set_current_tab(tab_container->get_tab_idx_from_control(file_system_dock));
+			if (file_system_dock->get_window() == get_tree()->get_root()) {
+				TabContainer *tab_container = (TabContainer *)file_system_dock->get_parent_control();
+				tab_container->set_current_tab(tab_container->get_tab_idx_from_control(file_system_dock));
+			} else {
+				file_system_dock->get_window()->grab_focus();
+			}
 		} break;
 
 		default: {