New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
seat: Drop has_exclusive_layer #8032
base: master
Are you sure you want to change the base?
Conversation
We can just check if the current focused layer has exclusive input.
@@ -1315,11 +1317,6 @@ void seat_set_focus_layer(struct sway_seat *seat, | |||
return; | |||
} | |||
assert(layer->surface->mapped); | |||
if (layer->current.layer >= ZWLR_LAYER_SHELL_V1_LAYER_TOP && |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems like we're loosing this condition here?
IOW, exclusive keyboard layers under the toplevels would never get focus before, but now they do.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we have this condition in the first place?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's a decision we made when implementing layer-shell support. The motivation is that if a particular layer has focus, a lower level layer cannot get focus. So if a toplevel has focus, background/bottom cannot get focus.
I used
Output of Note that I tested a merge of this into master: |
Fixes: #7936
In the transition to wlr_scene, I accidentally dropped a call to reset this
has_exclusive_layer
so once it was set, nothing could reset it afterwards and the compositor basically unusable. Let's just drop the has_exclusive_layer bool for something simpler and more robust.