I think parent is thinking about a behavior like the tool panels in Photoshop.
I think parent is thinking about a behavior like the tool panels in Photoshop.
What I mean by "managing multiple windows" is a single OS-process and application managing multiple windows: creating them, destroying them, hiding them, etc. Electron cannot do this. You are basically creating separate applications that talk to each other through inter-process communication. I mean, it says it right there in the link you posted. The process model of Electron is complex.
Here's how you create multiple windows in my in-work prototype:
let windowing = Windowing()
windowing.Initialize()
windowing.CreateWindow("Window 1")
windowing.CreateWindow("Window 2")
windowing.CreateWindow("Window 3")
while(windowing.WindowsAreOpen) do
System.Threading.Thread.Sleep(100)That would be quite a load if the user decides each current pane is now an independent window on the screen.
I remember JVM apps hitting this same issue. There are many ways to make two entities talk together (if IPC wasn't an option, a local IP channel would work as well, albeit way more costly), but then the performance would be abysmal, for apps that were already handicapped. Same process windows are way lighter than that.
https://www.electronjs.org/docs/latest/tutorial/process-mode...
This is not how native desktop applications handle multiple windows, although they could obviously.