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.
Instead of making
view_interface_t
a subclass ofsurface_interface_t
, we use composition. Now each view has a main surface accessible viaget_main_surface()
.This allows for cleaner separation of responsibilities, and we don't have to use hacks in
wlr_surface_base_t
to avoid double inheritance.Also, this is a second step to supporting the same window being visible on multiple outputs, as we use shared pointers for surfaces.
Now, we can have multiple views which use the same surfaces.
This is of course also useful for plugins which need to override the way Wayfire handles surfaces - for example, by providing a custom Xwayland view implementation, but reusing the
wlr_surface
handling.Another potential example are client-rendered server side decorations, or implementations of custom shells.
Preparation for the final part of #1309, which is splitting the desktop surface part out of the view.