Allow non-modal utility windows to enter fullscreen
Closes #809.
Firefox Picture-in-Picture windows use _NET_WM_WINDOW_TYPE_UTILITY. When WM_TRANSIENT_FOR is absent, xfwm4 treats them as transient for their window group, and the existing fullscreen guards reject them even though they are not modal.
Use a shared fullscreen eligibility predicate for non-modal NORMAL and UTILITY windows in the EWMH handler, window menu, keyboard action, and _NET_WM_ALLOWED_ACTIONS. Keep fullscreen exit available if a window becomes modal or changes type at runtime.
Tested against current master and the xfwm4-4.20.0 tag:
- stock 4.20.0 reproduces the issue;
- patched builds enter fullscreen and restore the original geometry and
ABOVEstate; - non-modal direct/group-transient
NORMALandUTILITYwindows work; - modal windows and unsupported window types remain rejected;
- Meson master, Autotools 4.20.0, and Arch package builds pass.