qt: introduce immersive mode feature (global PiP mode)
Immersive mode is merely a combination of these states:
- Interface window title bar is off (CSD is on).
- Interface window is always on top.
- Minimal mode is on.
This is essentially what we can provide to have "global" PiP mode, similar to what modern web browsers provide nowadays.
The immersive mode toggle button is added to:
- The top bar of player page.
- PiP player.
- Minimal mode view.
The immersive mode toggle button is only visible when there is video output. And, when video output is over, the immersive mode gets disabled automatically.
If the user overrides states required for immersive mode while immersive mode is active, disabling the mode does not revert the state. Otherwise, disabling immersive mode reverts the states it changed for its functioning.
I believe that combined with !6991 (closed), this can be really useful for the users.
Request review @chub.