ThreadPoolExecutor: Drop std::binary_semaphore polyfill.
All targets we compile for should now support enough C++20 stdlib features
to remove the need for us to provide a fallback.
fb6b987...
by
"bors[bot]" <26634292+bors[bot]@users.noreply.github.com>
Merge #2684
2684: Deal with confused state of KMS outputs better r=RAOF a=AlanGriffiths
Fixes: #2661
Fixes: #2674
Co-authored-by: Alan Griffiths <email address hidden>
f042f3b...
by
"bors[bot]" <26634292+bors[bot]@users.noreply.github.com>
Merge #2682
2682: XWayland: refactor state management r=AlanGriffiths a=wmww
Refactors state management to be more flexible and readable. Adds a new XWayland-specific struct instead of relying fully on `scene::SurfaceStateTracker`. This refactor is stacked on top of #2681 and was originally written as part of that, but was found to be unnecessary. If in the future we want to implement `_NET_WM_STATE_FOCUSED` this refactor will help greatly.
Co-authored-by: Sophie Winter <email address hidden>
67e6af1...
by
"bors[bot]" <26634292+bors[bot]@users.noreply.github.com>
Merge #2685
2685: Disable text input when client is unfocused r=AlanGriffiths a=wmww
Fixes #2651
Co-authored-by: Sophie Winter <email address hidden>
9cec9cd...
by
Sophie Winter <email address hidden>
Disable text input when client is unfocused
2151fa6...
by
"bors[bot]" <26634292+bors[bot]@users.noreply.github.com>
Merge #2644
2644: Improve Client class lifetime management r=wmww a=wmww
Libwayland notifies us that clients are destroyed before it cleans up all of the client's resources. The `wl_client` isn't freed until that is done. Previously, our WlClient class being destroyed before the resources, and logic was needed to prevent using using it after. This Makes `Client` an interface in `mir/wayland` and had `Resource` hold a shared pointer to it. This way the client isn't destroyed until it's last resource is. It also makes the client class more readily available.
Co-authored-by: Sophie Winter <email address hidden>
3d53a5e...
by
"bors[bot]" <26634292+bors[bot]@users.noreply.github.com>
Merge #2683
2683: XWaylandClipboardSource: do not clear source just before a new one is set r=AlanGriffiths a=wmww
Fixes #2677? I'm not quite sure the cause of the originally described bug (copying up to the last `\n`, nor have I observed that behavior specifically. However this does seem to fix the CLion/Intellij copy/paste bugs I'm seeing.
The problem is that when we got a new paste source we cleared the old one, but since setting up an X11 paste is a multi-step process and paste source observations are non-blocking, both the clearing and new source setup were happening at an arbitrary time and racing. With this PR the old paste source is invalidated (so nothing can paste from it), but it's not cleared. It will instead be replaced by the future paste source that will be created. If something goes wrong in the setup process, the worst that can happen is apps see an expired paste source, but trying to paste from it safely fails.
Co-authored-by: Sophie Winter <email address hidden>
5713c4e...
by
Sophie Winter <email address hidden>
XWaylandClipboardSource: do not clear source just before a new one is set
0081b72...
by
Sophie Winter <email address hidden>