You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As talked about in #4684, this renders popups separately from the corresponding windows, to make sure they are always displayed above other windows. I'm not sure though, whether they should be rendered before or after the top layer.
Furthermore, I don't have a good understanding of sways rendering code. This seems to work for me, but I cannot really figure out the side effects those changes may have. Splitting the output_layer_for_each_surface in three functions also gives some code duplication but I wanted to make sure to not break anything using output_layer_for_each_surface and expecting it to also include popups.
So it would be nice, if someone with an actual understanding of this code could give it a look and it's also why it is marked [WIP].
Edit: something I just realised: this changes the rendering order, but it doesn't change the order used for giving focus, therefore e.g. a context menu doesn't get any input events outside of the parent window.
To finish this PR matching changes to sway/input/cursor.c are needed. I made a PoC change that seems to be working as expected: alebastr@a9bd645
However the changes required to make this working made me think that rendering layer shell toplevel and popups on a different layers is way outside of initial assumptions. Maybe there's a cleaner way to do that, like changing layer-shell surface storage to be a single list sorted in a desired rendering/focus order and having only one place in the code that defines the order. Or 3 lists, overlay, above normal surfaces and below normal surfaces.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
As talked about in #4684, this renders popups separately from the corresponding windows, to make sure they are always displayed above other windows. I'm not sure though, whether they should be rendered before or after the top layer.
Furthermore, I don't have a good understanding of sways rendering code. This seems to work for me, but I cannot really figure out the side effects those changes may have. Splitting the output_layer_for_each_surface in three functions also gives some code duplication but I wanted to make sure to not break anything using output_layer_for_each_surface and expecting it to also include popups.
So it would be nice, if someone with an actual understanding of this code could give it a look and it's also why it is marked [WIP].
Edit: something I just realised: this changes the rendering order, but it doesn't change the order used for giving focus, therefore e.g. a context menu doesn't get any input events outside of the parent window.