Contributes to #317
This refactor changes WindowMaximizedTracker from being a Singleton, and allows for it to be created in a way such that screens can be filtered out.
This fixes external screens from having their homescreen "zoom out" when an app is maximized on another screen.
Fixes https://invent.kde.org/plasma/plasma-mobile/-/issues/333
There is some behavior with "show desktop" mode that we do not want (as it self-restores under certain focus conditions).
Just simply minimize all windows instead.
Fixes https://invent.kde.org/plasma/plasma-mobile/-/issues/306
I added a ShaderEffectSource in between so that the blur only samples the wallpaper when necessary
I also switched to FastBlur which seems to be much, much faster than MultiEffect on the PinePhone.
From testing, this made the performance about on-par with no blur at all.
The wallpaper blur causes extreme lag on the PinePhone, best to disable it for now by default, and hide it behind a setting. :C
https://invent.kde.org/plasma/plasma-mobile/-/issues/306
PS: is there a string freeze ongoing? this introduces 2 new strings
The eventual goal is to have as few singletons with state as possible in the mobileshell component when it is imported into components such as the lockscreen.
This doesn't fully accomplish it, but moves the audio provider singleton to MobileShellState, which will eventually need to be prevented from importing into non plasmashell processes.
This also disables the sound feedback when changing volume, since it can be a source of lag when showing the applet.
Having a global set margins and orientation (that were calculated from the panel containment) caused a lot of issues with the way bindings were evaluated across panels, and with high coupling.
Now use properties from within containments to determine shell margins instead, which removes the dependency on other containments for measurements. This allows us to get rid of TaskPanelControls as well!
Fixes: https://invent.kde.org/teams/plasma-mobile/issues/-/issues/198