Rework ShellClient fullscreen control
The ShellClient::setFullScreen method was a direct copy of the Client
Straighten out the function logic now and align with modern coding style.
In short we check:
- what the manual override window rule wants,
- if there is a change at all with this,
- if such a change is possible.
- (un-)set the fullscreen,
- emit the changed signal.
Test Plan: Manually, autotests pass.
Subscribers: zzag, kwin
Maniphest Tasks: T11098
Differential Revision: https://phabricator.kde.org/D18132