-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Prevent a layer shell infinite looping case #6709
Conversation
This commit try to fix a case we encounter when running swayout, a layer shell to display text above the background. When running wayout, other layer shell start to consume 100% of the CPU. This seems related to a previous fix 744e85b. Then later, another commit reworks this handle_surface_commit method 5fd5d64. This is a tentative to fix the issue without missing the points of those patches. We basically try to not re-arrange layers if no layer changed.
cc @vyivel The change looks fine to me, it seems like an oversight in the patches referenced above? |
I think this will break cases when a layer surface changes its keyboard interactivity but not anything else. |
Shouldn't this be handled by |
With this patch, |
This seems to cause some issues :
|
Right, because changing anchor is also not handled. |
Presumably what happens here is a loop of "Sway configures a layer surface <-> the client needlessly sets the same size/anchor/etc". While a client shouldn't really do this, it's perfectly valid behavior, so the fix would to be check not only |
wlroots could have this logic, so that compositors don't need to manually check this. |
That would make sense; also e.g. |
I tried this : https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3402 It seems to work. What do you guys think of that ? |
Superseded by the wlroots MR. |
This commit try to fix a case we encounter when running wayout, a layer
shell to display text above the background.
When running wayout, other layer shell start to consume 100% of the CPU.
This seems related to a previous fix 744e85b. Then later, another commit
reworks this handle_surface_commit method 5fd5d64.
https://todo.sr.ht/~mil/sxmo-tickets/413
This is a tentative to fix the issue without missing the points of those
patches.
We basically try to not re-arrange layers if no layer changed.
Related to : #6546
This patch seems to solve our issue, but am I missing something ?