Go to file
topkoa 938ddded60 feat(panes)!: dress the renderer's pane window, don't create it
Follows the core change: a pane is now the plugin's REAL panel element,
moved into the pop-out window and still running the plugin's own code
(got-feedback/feedback#928).

That forces one thing here, and it is worth being loud about it:

  WE MUST NOT CREATE THE PANE WINDOW.

To move a live DOM node into another window, the renderer needs a handle on
that window's document. A BrowserWindow we construct in the main process
gives it no such handle. So the renderer opens the window itself with
window.open(), Electron's setWindowOpenHandler turns that into a real
BrowserWindow anyway, and we recognise it in did-create-window by the frame
name the renderer gave it (`fbpane-<paneId>`) and attach the OS behaviour:
remembered bounds, off the taskbar, minimize-to-tray, listed in the tray.

Create the window here instead and the whole feature collapses back into
"reimplement the panel in the pop-out and sync it over IPC" — which is
exactly what we just deleted.

The IPC surface shrinks to two channels, because main never creates or
destroys a pane window and never looks inside one:

  pane:sync    renderer → main   the registry, so the tray can list panes
  pane:toggle  main → renderer   the tray asking for a pane; only the
                                 renderer knows what opening one means (it
                                 might belong in the dock, and its element
                                 lives there)

Gone: pane:open, pane:close, pane:focus, pane:setAlwaysOnTop, pane:closed.
The renderer holds the WindowProxy for a window it opened, so it already
knows when the user closes it — and it has to, because its element is inside
and must be brought home.

Signed-off-by: topkoa <topkoa@gmail.com>
2026-07-12 18:14:49 -04:00
.claude/skills Clean release snapshot 2026-06-16 18:48:12 +02:00
.devcontainer ci: repoint desktop build off the deleted slopsmith org 2026-06-17 00:47:43 +02:00
.github/workflows fix(ci): rename entitlements file — vpk requires .entitlements extension 2026-07-10 15:04:31 +02:00
.packages Clean release snapshot 2026-06-16 18:48:12 +02:00
.specify Clean release snapshot 2026-06-16 18:48:12 +02:00
cmake Clean release snapshot 2026-06-16 18:48:12 +02:00
docs fix(audio): never feed chain processors blocks larger than prepared size (#85) 2026-07-08 22:44:26 +02:00
JUCE@9971c75b2c Clean release snapshot 2026-06-16 18:48:12 +02:00
resources fix(ci): rename entitlements file — vpk requires .entitlements extension 2026-07-10 15:04:31 +02:00
scripts fix(bundle): copy all top-level core python packages (routers/ etc.) 2026-07-10 16:47:32 +02:00
src feat(panes)!: dress the renderer's pane window, don't create it 2026-07-12 18:14:49 -04:00
tests feat(window): persist main window size/position across launches (#97) 2026-07-11 15:41:47 +02:00
.build-config.json fix(build): make the local + CI Linux build work off main (#26) 2026-06-20 14:32:01 +02:00
.gitignore Clean release snapshot 2026-06-16 18:48:12 +02:00
.gitmodules Clean release snapshot 2026-06-16 18:48:12 +02:00
CMakeLists.txt Clean release snapshot 2026-06-16 18:48:12 +02:00
CONTRIBUTORS.md Clean release snapshot 2026-06-16 18:48:12 +02:00
LICENSE Clean release snapshot 2026-06-16 18:48:12 +02:00
package.json feat(panes): pane pop-out windows + the system tray 2026-07-12 17:22:44 -04:00
THIRD_PARTY_LICENSES.md Clean release snapshot 2026-06-16 18:48:12 +02:00
tsconfig.json Clean release snapshot 2026-06-16 18:48:12 +02:00
WINDOWS_BUILD_REQUIREMENTS.md Repoint dead slopsmith URLs -> got-feedback 2026-06-17 11:02:09 +02:00