Page MenuHome

In Face-select Mode, Hiding unselected doesn't hide loose edges
Confirmed, NormalPublicBUG


System Information
Operating system: Windows-10-10.0.18362-SP0 64 Bits
Graphics card: Intel(R) HD Graphics 400 Intel 4.4.0 - Build

Blender Version
Broken: version: 2.83 (sub 0), branch: master, commit date: 2020-01-17 19:09, hash: rB1f92e9903fb7
Worked: (optional)

Short description of error
I don't really know if it is a bug or a limitation but Loose edges are not hidden when hiding unselected in face select mode.

Exact steps for others to reproduce the error
Open the attached blend file and hit Shift+H with the selected face. It doesn't hide the loose edges.

Event Timeline

Since those aren't faces, I think it works as intended. But would be good to get someone else to confirm. @Campbell Barton (campbellbarton) thoughts`?

It certainly isn't working as intended, that operator should hide all unselected geometry (i.e. it should do precisely the inverse of Hide Selected). There was a fix for Hide Unselected semi-recently as per T71554, but it seems the core implementation is missing something.

Germano Cavalcante (mano-wii) changed the task status from Needs Triage to Confirmed.Jan 21 2020, 1:23 AM

Although it may be intended, this does not appear to be desirable behavior.
And it would not be difficult to fix:

diff --git a/source/blender/editors/mesh/editmesh_utils.c b/source/blender/editors/mesh/editmesh_utils.c
index f7092a8c6ab..18b13d8934c 100644
--- a/source/blender/editors/mesh/editmesh_utils.c
+++ b/source/blender/editors/mesh/editmesh_utils.c
@@ -1287,7 +1287,7 @@ bool EDBM_mesh_hide(BMEditMesh *em, bool swap)
   char hflag_swap = swap ? BM_ELEM_SELECT : 0;
   bool changed = true;
-  if (em->selectmode & SCE_SELECT_VERTEX) {
+  if (swap || em->selectmode & SCE_SELECT_VERTEX) {
     itermode = BM_VERTS_OF_MESH;
   else if (em->selectmode & SCE_SELECT_EDGE) {
Philipp Oeser (lichtwerk) changed the subtype of this task from "Report" to "Bug".Jan 24 2020, 2:21 PM

I dare calling this a bug.

I would argue that this is intended behaviour, and if a user also wanted to hide the loose edges, then they should have "Edge select" (or "Vertex select" to hide _all_ unselected geometry) enabled rather than "Face select".

  • You can't see a loose vertex in edge and face mode, no issue here.
  • But You can see loose edges (that don't create any faces) in the face mode. This is OK as well.
  • You can't select those loose edges in face mode, makes sense.
  • But you can select everything all at once which selects faces and those loose edges.
  • Now you can move/rotate/scale and even subdivide the selection.
  • But when you hide only the faces are hidden.
  • You can still move/rotate/scale the remaining selected loose edges. BUT CAN'T HIDE IT.

Not consistent !!