This is the proposed fix for the T55202.
The main changes are:
- Use the edit cage of all edited meshes to snap/project the cursor.
- Stores the bvhtree of the edited mesh (without masking) in the Mesh bvh_cache;
More technical changes:
- The key used in Ghash object_map is now the Mesh or BMEditMesh pointer instead of the Object pointer;
- A temporary bound box is created for all edited meshes in order to avoid having to create a bvhtree for all of them;
Just to note, this changes the original behavior of the cursor projection in pre 2.80 versions that was made on the object with modifiers (even in edit mode).