RPaned: ensure get_relative always returns a value between 0 and 1 #2330
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #2321
The cause of the issue was that RPaned's get_relative() occasionally returned a value greater than 1, because get_max() returned a value of 1 while get_position() returned a value >1. The solution was to not solely trust the _alloced flag, and instead return __relative in cases where the function otherwise would return invalid values.
To make the relative position consistently between 0 and 1, I also added a check for this in set_relative().