Skip to content
This repository was archived by the owner on Sep 8, 2020. It is now read-only.

Splitbar jumps when max-size is smaller than the default size #166

Open
widmoser opened this issue Dec 4, 2015 · 2 comments
Open

Splitbar jumps when max-size is smaller than the default size #166

widmoser opened this issue Dec 4, 2015 · 2 comments
Labels

Comments

@widmoser
Copy link
Contributor

widmoser commented Dec 4, 2015

Consider the following plunker with a ui-layout with two containers. The max-size of the left container is set to 40%. The start position of the split bar is at 50% though. As soon as the split bar is moved, it is assigned the correct position of 40% resulting in a jump.

@SomeKittens
Copy link
Contributor

It's also bugging out when dragging even within that 40% range.

@widmoser
Copy link
Contributor Author

widmoser commented Dec 9, 2015

I started looking into this issue and at first my idea was to just add another if to limit the auto distributed size to the respective maximum or ensuring the minimum if set. The problem that arises though is that it is not so easy any more to distribute the remaining space if there are more than one auto-sized container. So I came up with the following algorithm:

  • First assign each auto sized container its minimum size (or 0 if it has no minimum size)
  • Sort auto sized containers by their maximum size (in ascending order)
  • Iterate through the sorted list and assign each container an equal fraction of the remaining size but limiting it to the maximum size and compensating if the container got more space during the first step. After each iteration update the remaining size because if a container hits its maximum size, there is more space left for the remaining containers.

Unless the sum of all min sizes is greater or the sum of all max sizes smaller than the total size of the container this should distribute the space in a useful manner.

I can upload what I have done so far into a PR, but currently the tests are not passing because the pixel size is not always exactly correct (varying about 1 or 2 pixels).

Thinking of #162 another option would be to completely rethink the layouting approach and solve everything at once.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants