Move Screen edges freely

Screen edge’s movement is limited from the adjacent screen areas, when resizing an area. It would be nice to move the other edges too, if blocking movement.

To move the green edge left:
Create an array with structs from the red edges,
And find the snapping point for each edge.
(Some more nested loops may required for that initial part.
It gets quite complicated for yellow edge.)
While moving:
Check/move only vertices in the structs.
Refresh areas if need.(how hard can it be to refresh a couple more areas?)

possible modes:

  1. Snap on every edge.
  2. Snap on the first edge only.
  3. Move without snapping.
  4. Move a percentage to the left all the lines from the start.

I have written some part of it, and know how to complete, but I have no incentive to continue.
Also I have a separate prototype moving both horizontal and vertical edges from corner.

Is this something you 'd like to add in the code?