Page MenuHome

UI : More Forgiving Joins

Authored by Harley Acheson (harley) on Aug 26 2019, 7:27 PM.



Joining areas can be very finicky at times because of the need for everything to line up perfectly.

In the simplest cases, this is not a problem. But as your workspace gets more complex with more areas, you might need to manually line up one edge with another in order to start a join. But alignment must be PERFECT. It can look seem perfectly-aligned but will not join if out by a single pixel. Especially difficult if using a tablet pen or if using a high-DPI display.

This patch makes the join a bit more forgiving. Basically adds a bit of wriggle room so it can proceed as long as the alignment is close.

The "wriggle room" is quite small in order to avoid some potential problems with very small areas. In a nutshell you still have to get the edges close. The following image shows two areas aligned well-enough vertically to do a horizontal join (assuming the other horizontal edges are similarly close to each other)

Diff Detail

rB Blender

Event Timeline

This patch really highlights a weak area in Blender’s subdivision-based UI system. The trouble is that you can easily accidentally make several areas stick together that you didn’t mean to.

So, yes, this patch makes it easier to stick areas, but it also makes it easier to do it by accident.

The system has this inherent tradeoff. Alternatively we could re-consider how the area sticking should work (maybe activated somehow?), or if we even really need it at all.

@William Reynish (billreynish) - So, yes, this patch makes it easier to stick areas, but it also makes it easier to do it by accident.

This patch does not change how neighboring edges can "stick" together (without a way to unstick them).

This patch only makes it possible to JOIN two neighboring areas that would otherwise not allow it because the edges aren't perfect. So doesn't require them to be "stuck" first.

You are right. In that case, this makes sense to do IMO.

Just adding a better example.

The two center areas shown here can be horizontally joined despite their top and bottom edges not lining up perfectly.

Tested. Seems to work well, and makes it a lot easier to join areas.

This revision is now accepted and ready to land.Aug 26 2019, 9:54 PM
This revision was automatically updated to reflect the committed changes.