### Godot version

4.1.1.stable

### System information

Godot v4.1.1.stable - Windows 10.0.19045 - Vulkan (Mobile) - dedicated NVIDIA GeForce RTX 2070 SUPER (NVIDIA; 30.0.15.1295) - Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz (6 Threads)

### Issue description

When undocking the script editor so that it's floating, CollisionShape3D Shape Size handles stop working.

If they were visible on a Shape, they remain visible on that shape and still work for that shape; but they will not appear on any other collision object when selecting it.

If you launch the editor with the Script panel already in a floating state, no shape handles ever become visible.

If you dock the Script editor again, everything goes back to normal and works fine.

### Steps to reproduce

Create a 3D scene with some collision shapes.
Undock the Script editor

### Minimal reproduction project

N/A
_save_layout();
	se->connect("name_changed", callable_mp(this, &ScriptEditor::_update_script_names));
	se->connect("edited_script_changed", callable_mp(this, &ScriptEditor::_script_changed));
	se->connect("request_help", callable_mp(this, &ScriptEditor::_help_search));
	se->connect("request_open_script_at_line", callable_mp(this, &ScriptEditor::_goto_script_line));
	se->connect("go_to_help", callable_mp(this, &ScriptEditor::_help_class_goto));
	se->connect("request_save_history", callable_mp(this, &ScriptEditor::_save_history));
	se->connect("search_in_files_requested", callable_mp(this, &ScriptEditor::_on_find_in_files_requested));
	se->connect("replace_in_files_requested", callable_mp(this, &ScriptEditor::_on_replace_in_files_requested));
	se->connect("go_to_method", callable_mp(this, &ScriptEditor::script_goto_method));
	
	_test_script_times_on_disk(p_resource);
	_update_modified_scripts_for_external_editor(p_resource);
	if (p_line >= 0) {
		se->goto_line(p_line);
	}
	notify_script_changed(p_resource);
	return true;
}
PackedStringArray ScriptEditor::get_unsaved_scripts() const {
	PackedStringArray unsaved_list;
	for (int i = 0; i < tab_container->get_tab_count(); i++) {
		ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i));
		if (se && se->is_unsaved()) {
			unsaved_list.append(se->get_name());
		}
	}
	return unsaved_list;
}
void ScriptEditor::save_current_script() {