display arrangement rewrite #1578
Open
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.



I got annoyed so much by the unreliable display arrangement interface that I actually went ahead and have rewritten this from scratch. After multiple wrestling attempts with iced/libcosmic I just decided to write a custom renderer for this use case (#1541 (comment)).
I also added proper display arrangement validation with graph traversals and prevent the user from applying an invalid arrangement. This does not prevent you from creating subjectively ugly layouts but at least it is guaranteed that you can reach any screen from any screen via the mouse.
closes #1541
fixes #1473
fixes #1107
should fix #890
fixes #888
fixes #817
before:
before.mp4
after:
after.mp4