Report this window's visibility to target, now and after every change. Called once per window, when its applet is mounted.
The person is working in the shell itself; no window is focused.
Remove a window and stop reporting to it.
Stop reporting and complete state$.
Bring a window to the front and give it the person's attention. Shows it if it was minimised.
The layouts the person can choose between.
Hide a window without closing it.
Move or resize a window. Ignored unless the state is freeform.
Add a window in front, focused. Opening an id that is already open brings that window to the front.
Tell the manager whether the page itself can be seen. A hidden page hides every window.
The current state.
Mark a window's applet as stopped: it loses focus, is no longer reported to, and waits to be closed.
What the guard is told about a window when it asks. An unknown window is neither visible nor focused.
Where windows are, which one has the person's attention, and what the guard is told about each.
A shell draws from
state$and calls the methods from its own events. One obligation is fixed for every implementation:visibilityOfand the reports sent to each attached target must be true. A window the person cannot see is not visible, and a window they are not working in is not focused. The guard holds a hidden applet's requests and gives an unfocused one a smaller budget on the strength of these reports. Everything else is the implementation's choice.