Why both LMB drag and B selection modes that differ in ctrl/shift and functionality?

Given the new LMB drag functionality I’m wondering why box select with B is still around, or at least doesn’t simply launch the same selection method as LMB drag? The functionality is very similar, but not completely and with different behaviour when using shift/ctrl keys (this is with 2.80.68 in the 3D view):

Select Box (tool shelf):

  • LMB drag: select only objects overlapping the rectangle, deselect all others
  • Shift + LMB drag: add objects to selection
  • Ctrl + LMB drag: clear selection state of objects overlapping the rectangle

Border select:

  • B, LMB drag: add objects to selection (different modifier key from tool, no shift needed)
  • B, Shift+LMB drag: clear selection state of objects (different modifier key from tool, shift instead of ctrl)
  • B, Ctrl+LMB drag: doesn’t work
  • Select only objects overlapping the rectangle, deselect all others: not possible

There’s a similar case for using Select Circle from the tool shelf, versus Ckey for circle select. With the default circle size for Ckey these modes are visually hard to keep apart, while also having different behaviour when using shift/ctrl keys.

All in all, why have these overlapping and subtly different actions? I’m worrying about explaining this to our users during a course. Should I stick to only explaining LMB drag and not mention Bkey at all?

Afaik there’s no great reason why dragging LMB vs the B key works differently with modifier keys.

Main difference is that the B key box select is a modal operator which you first launch, and then you can use modifiers, whereas when you drag, it happens the other way around: You hold a modifier key, then drag.

Probably, if you are teaching new users, though annoyingly the only way to box select in the Outliner is still by using the B key. This will most likely be addressed in 2.81 though, with the forthcoming Outliner changes.

Right, and that difference in activating the selection method might matter for certain editors I guess.

Hmmm, the outliner having its own selection of tree items which is independent of the scene selection is also a bit of a headache visually, let alone how to make the selection. And it seems that with the latest revision (2.80.68) things got tweaked again and you can no longer tell the selection state of the active object:

While in 2.80.60 (note, cubes have different names wrt order):

I do like the orange/yellow coloring of the names, though, much easier to link to the selection state. Ah well, at some point it hopefully becomes perfect :wink: