window: Freeze stack when calculating showing state
Constantly manipulating the stack caused severe stalls (several seconds) with many open windows when switching workspaces. The cause for this was that each show/hide call dealt with the stack in isolation, meaning if you hid N windows, we'd manipulate and synchronize the stack N times, potentially doing synchronous calls to the X server while doing so. Avoid the most severe stalls by freezing the stack while calculating showing; this made the worst case go from several seconds to around 10-20 ms, which is still bad, but by far not as bad. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1616> (cherry picked from commit d43c8cd8)
parent
b67880f7
Please register or sign in to comment