Join multiple areas at once
Note: This is an elaboration on Join 2 or more areas, and resize 2 or more areas , which was posted almost six years ago, didn't get much attention and lacked details and simplification.
Currently, joining an area affects works only on the direct neighbor:
While it is perfectly logic in the split and join aspect, it does make the experience frustrating in some cases.
This could be either a default behavior, or to be toggled either in the preferences or by holding down the Shift or Alt key while dragging:
Now the catch here, is that such possibility will mean that there are some cases like the above where, dragging over non-neighbours will result in the need to split already existing areas.
I could see multiple approaches here:
1. Extend the joined area to the end of the last reached area.
Instead of "stopping" the join action where the user releases the mouse button, it will instead extend the active area, similarly to how it works in current Blender when you join areas that aren't aligned.
In the above example, it would result in the text editor being extended to the left window's edge, replacing the top half of the viewport.
2. Arbitrary splitting
There could be sets of rules that try to determine how to split the areas. Such as:
- Do as few splits as possible In the above example, the viewport could have been split to three new areas from the text editor's bottom left corner, but that would just make a mess.
- The split edge should be the smallest possible In the above example, there are two splits possible: horizontal or vertical. I chose vertical because it preserved the original the most. And this is done by making the shortest split.
Now, all this is debatable, and maybe some situations would need either solution, or maybe sometimes you'd want the longest split.
So, maybe this all should be available solutions exposed in the preferences at least. And, ideally, also be toggle-able by holding down more keys while performing the join drag, similarly to how modal operators work.
1 Comment
I dont see any reason why multiple join shouldnt be the default, the control over it is good enough without extra keys. I would prefer the first approach, creating new areas in the join process seems weird to me.