Right now, it is not straightforward to determine how new windows open,. If you call window.open() it may open a new full window (like on mobile), force a split tab (like on a number of tablets), or just open an entire new window. A call to open a 300x400 "palette" window works fine on a desktop, but on a tablet, it might unexpectedly split the screen 50/50 and break the main app's layout. On a phone, it will just fail entirely by opening a tab. New environments like Apple's Stage Manager on iPadOS and the various split-screen/pop-up views on Android tablets are not "freeform" desktops, but they do support multiple windows. Developers are completely blind to this distinction.
I am preposing that we add a windowingMode attribute to ScreenDetailed that signals what to expect
- freeform: A traditional desktop where coordinate-based, overlapping windows are honored
- managed: A device (like a tablet in split-screen or Stage Manager) that supports multiple windows but where the OS controls placement. The script's coordinates are ignored in favor of a tiled or constrained layout. Note my intention is that this is not just 50/50 splits, but would also be situations like VisionOS, where multiple windows are allowed, but the layout constraints are ignored.
- single-context: A system (like a phone) that doesn't support a second window context, forcing popups into tabs.
I sent in a proposal to the spec in #152, but am of course more than happy to redo any/all of it.
Right now, it is not straightforward to determine how new windows open,. If you call
window.open()it may open a new full window (like on mobile), force a split tab (like on a number of tablets), or just open an entire new window. A call to open a 300x400 "palette" window works fine on a desktop, but on a tablet, it might unexpectedly split the screen 50/50 and break the main app's layout. On a phone, it will just fail entirely by opening a tab. New environments like Apple's Stage Manager on iPadOS and the various split-screen/pop-up views on Android tablets are not "freeform" desktops, but they do support multiple windows. Developers are completely blind to this distinction.I am preposing that we add a
windowingModeattribute toScreenDetailedthat signals what to expectI sent in a proposal to the spec in #152, but am of course more than happy to redo any/all of it.