소스 검색

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.

Hayden Leete 2 년 전
부모
커밋
c4d1513e15
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());
 			file_system_dock->navigate_to_path(edited_resource->get_path());
 
 
 			// Ensure that the FileSystem dock is visible.
 			// 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;
 		} break;
 
 
 		default: {
 		default: {