Refactor seat operations to use an interface #3402
Merged
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.
This splits each seat operation (drag/move tiling/floating etc) into a separate file and introduces a
struct sway_seatop_impl
to abstract the operation. This removes a heap of code from cursor.c and seat.c, and removes a bunch of multi-purpose properties from the seat struct.The
move_tiling_threshold
operation has been merged intomove_tiling
.The main logic for each operation is untouched aside from variable renames.
The following previously-static functions have been made public:
node_at_coords
container_raise_floating
render_rect
premultiply_alpha
scale_box
Everything seems to work correctly, but I've only tested it hastily. Please test thoroughly.